// DO NOT REMOVE THE COMMENT LINE BELOW
// $Id: reqform.js 78 2006-04-05 12:33:39Z mitko $

RelativeCheckoutLink = "/cgi-bin/e-cms/vis/vis.pl?s=001&p=0205&n=000004";

DomainRE = location.href.match( /:\/\/(www\.)?([^\/:]+)/ );
sDomain = '';
sDomain += DomainRE[1]?DomainRE[1]:'';
sDomain += DomainRE[2]?DomainRE[2]:'';
sCookieDomain = DomainRE[2]?'.'+DomainRE[2]:'';

GotoCheckoutAfterAdd = true;

AddRequestNotice = "";
MiscNote = "You can add more items to your request, before submitting it";
RequestExistsNotice = "Item already requested";
EmptyRequestNotice = "You can make inquiry about specific property by clicking<br>REQUEST ADDITIONAL INFO button on the property page";
RemoveRequestCaption = "Remove";
RequestTableCaption = "Requested items";
SendRequestCaption = "send";
SmallRequestStyle = "class=\"request\"";
BigRequestStyle = "class=\"checkout\"";

// table headings
HeadItemId		= "ID";
HeadItemName	= "Name";
HeadItemPrice	= "Price EUR";
HeadItemDescr	= "Description";

// form input names
OutputItemId		= "IID_";
OutputItemName	= "INM_";
OutputItemPrice	= "IPR_";
OutputItemDescr	= "IDS_";

CheckoutLink = 'http://'+sDomain + RelativeCheckoutLink;

if(RelativeCheckoutLink == ""){
	alert("Invalid checkout link!");
}

function ManageRequest( bDisplay , bAllowRemove, bShowHeadings) {	
   var iNumberRequested = 0;
   var strOutput      = "";   //String to be written to page
	 iNumberRequested = GetCookie("NumberRequested");
   if ( iNumberRequested == null )
      iNumberRequested = 0;
   if ( bDisplay ){
      strOutput = "<TABLE "+BigRequestStyle+">";
      
      if( bShowHeadings ){
      	strOutput += "<TR>";
      	strOutput += "<TD "+BigRequestStyle+" align=\"center\">"+HeadItemId+"</TD>";
      	strOutput += "<TD "+BigRequestStyle+" align=\"center\">"+HeadItemName+"</TD>";
      	strOutput += "<TD "+BigRequestStyle+" align=\"center\">"+HeadItemPrice+"</TD>";     
      	strOutput += "<TD "+BigRequestStyle+" align=\"center\">"+HeadItemDescr+"</TD>";
      	if( bAllowRemove ) 
      		strOutput += "<TD "+BigRequestStyle+"> </TD>";
      	strOutput += "</TR>";
      }
      
   		if ( iNumberRequested == 0 ) {
   				if( bAllowRemove )
   					if( bShowHeadings )
      				strOutput += "<TR colspan=\"5\"><TD "+BigRequestStyle+" align=\"center\"><B>"+EmptyRequestNotice+"</B></TD></TR>"
      			else
      				strOutput += "<TR><TD "+BigRequestStyle+" align=\"center\"><B>"+EmptyRequestNotice+"</B></TD></TR>";
      		else
      			if(bShowHeadings)
      				strOutput += "<TR colspan=\"4\"><TD "+BigRequestStyle+" align=\"center\"><B>"+EmptyRequestNotice+"</B></TD></TR>"
      			else
      				strOutput += "<TR><TD "+BigRequestStyle+" align=\"center\"><B>"+EmptyRequestNotice+"</B></TD></TR>"
      			
   		}
  }
   for ( i = 1; i <= iNumberRequested; i++ ) {
      NewRequest = "Request." + i;
      database = "";
      database = GetCookie(NewRequest);
      Token0 = database.indexOf("|", 0);						// id
      Token1 = database.indexOf("|", Token0+1);			// name
      Token2 = database.indexOf("|", Token1+1);			// price
      Token3 = database.indexOf("|", Token2+1);			// description
      fields = new Array;
      fields[0] = database.substring( 0, Token0 );
      fields[1] = database.substring( Token0+1, Token1 );
      fields[2] = database.substring( Token1+1, Token2 );
      fields[3] = database.substring( Token2+1, database.length );
      
      if ( bDisplay ) {
         strOutput += "<TR><TD "+BigRequestStyle+">"  + fields[0] + "</TD>";
         strOutput += "<TD "+BigRequestStyle+">"  + fields[1] + "</TD>";
         strOutput += "<TD "+BigRequestStyle+" align=\"right\">"  + fields[2] + "</TD>";
         strOutput += "<TD "+BigRequestStyle+">"  + fields[3] + "</TD>";
         if(bAllowRemove)
         	strOutput += "<TD "+BigRequestStyle+" align=\"center\"><input type=button "+BigRequestStyle+" value=\""+RemoveRequestCaption+"\" onClick=\"RemoveFromRequest('"+i+"')\"></TD>";
                  	
         strOutput += "</TR>";
      }
      strFooter = i;
            
      strOutput += "<input type=hidden name=\"" + OutputItemId + strFooter + "\" value=\"" + fields[0] + "\">";
      strOutput += "<input type=hidden name=\"" + OutputItemName + strFooter + "\" value=\"" + fields[1] + "\">";
      strOutput += "<input type=hidden name=\"" + OutputItemPrice + strFooter + "\" value=\"" + fields[2] + "\">";
      strOutput += "<input type=hidden name=\"" + OutputItemDescr + strFooter + "\" value=\"" + fields[3] + "\">";
   }
   
   strOutput += "</TABLE>";
   
   if(bDisplay && (MiscNote.length > 0) && (iNumberRequested>0)){
   	strOutput += "<P "+BigRequestStyle+">"+MiscNote+"</P>"
   }
   
   strOutput += "<input type=hidden name=\"total_items\" value=\"" + iNumberRequested + "\">";
   document.write(strOutput);
   document.close();
}


function ShowSmallRequest(bShowRemove, bShowHeadings){
	iNumberRequested = GetCookie("NumberRequested");
  if ( iNumberRequested == null )
      iNumberRequested = 0;
  
  strOutput = "";
  
  if(iNumberRequested > 0){    
  	strOutput += "<table "+SmallRequestStyle+">";
  	
  	if( bShowHeadings ){
  		if(bShowRemove){
  			strOutput += "<tr><td colspan=2 "+SmallRequestStyle+" align=\"center\">"+RequestTableCaption+"</td></tr>"
  		} else {
  			strOutput += "<tr><td "+SmallRequestStyle+">"+RequestTableCaption+"</td></tr>"
  		}
  	}
  	
		for(i=1; i <= iNumberRequested; i++){
			NewRequest = "Request." + i;
	    database = "";
	    database = GetCookie(NewRequest);
	
	    Token0 = database.indexOf("|", 0);
	    
	    fields = new Array;
	    fields[0] = database.substring( 0, Token0 );
	    
	    strOutput += "<tr><td "+SmallRequestStyle+">"+fields[0]+"</td>";
	    if(bShowRemove){
	    	//strOutput += "<td "+SmallRequestTableRow+"><button onClick=\"RemoveFromRequest("+i+")\"><img src=/e-internal/fc_prop_remove.gif border=0></button></td>";
	    	strOutput += "<td "+SmallRequestStyle+"><input type=button "+SmallRequestStyle+" onClick=\"RemoveFromRequest("+i+")\" value=\""+RemoveRequestCaption+"\"></td>";
	    }
	    strOutput += "</tr>";
		}	
		if(bShowRemove){
			strOutput += "<tr><td colspan=2 "+SmallRequestStyle+" align=\"center\"><a "+SmallRequestStyle+" href=\""+CheckoutLink+"\">"+SendRequestCaption+"</a></td></tr>";
		} else {
			strOutput += "<tr><td "+SmallRequestStyle+" align=\"center\"><a "+SmallRequestStyle+" href=\""+CheckoutLink+"\">"+SendRequestCaption+"</a></td></tr>";
		}
		
		strOutput += "</table>";
	}
	
	
	document.write(strOutput);
	document.close();
}

function AddToRequest(itemId, itemName, itemPrice, itemDescr) {
	var iNumberRequested = 0;	
	iNumberRequested = GetCookie("NumberRequested");
	if ( iNumberRequested == null )
		iNumberRequested = 0;
      
	if( ! RequestExists(itemId) ){  
		iNumberRequested++;
		dbUpdatedRequest = itemId + '|' + itemName + '|' + itemPrice + '|' +itemDescr;
		strNewRequest = "Request." + iNumberRequested;
		SetCookie(strNewRequest, dbUpdatedRequest, null, "/", sCookieDomain);
		SetCookie("NumberRequested", iNumberRequested, null, "/", sCookieDomain);
		
		if( AddRequestNotice.length > 0 )
			alert(AddRequestNotice);
	
		if(GotoCheckoutAfterAdd){
			location.href = CheckoutLink;
		} else {
			location.href = location.href;
		}
	} else {
		if(RequestExistsNotice.length > 0)
			alert(RequestExistsNotice);
	}
}

function RequestExists( itemId ){
	var exists = false;
	var iNumberRequested = GetCookie("NumberRequested");
	
	if ( iNumberRequested == null )
      iNumberRequested = 0;
 
 	for ( i = 1; i <= iNumberRequested; i++ ) {
      database = GetCookie("Request."+i);
      Token0 = database.indexOf("|", 0);							// item id
      fields = new Array;
      fields[0] = database.substring( 0, Token0 );     
  
  		if(fields[0] == itemId)    {
  			exists = true;
  			break;
  		}
	}
	
	return exists;
}

function getCookieVal (offset) {
   var endstr = document.cookie.indexOf (";", offset);
   if ( endstr == -1 )
      endstr = document.cookie.length;
   return(unescape(document.cookie.substring(offset, endstr)));
}
function FixCookieDate (date) {
   var base = new Date(0);
   var skew = base.getTime();
   date.setTime (date.getTime() - skew);
}
function GetCookie (name) {
   var arg = name + "=";
   var alen = arg.length;
   var clen = document.cookie.length;
   var i = 0;
   while ( i < clen ) {
      var j = i + alen;
      if ( document.cookie.substring(i, j) == arg ) return(getCookieVal (j));
      i = document.cookie.indexOf(" ", i) + 1;
      if ( i == 0 ) break;
   }
   return(null);
}
function SetCookie (name,value,expires,path,domain,secure) {
   document.cookie = name + "=" + escape (value) +
                     ((expires) ? "; expires=" + expires.toGMTString() : "") +
                     ((path) ? "; path=" + path : "") +
                     ((domain) ? "; domain=" + domain : "") +
                     ((secure) ? "; secure" : "");
}
function DeleteCookie (name,path,domain) {
   if ( GetCookie(name) ) {
      document.cookie = name + "=" +
                        ((path) ? "; path=" + path : "") +
                        ((domain) ? "; domain=" + domain : "") +
                        "; expires=Thu, 01-Jan-70 00:00:01 GMT";
   }
}
function RemoveRequest( itemId ){
	 iNumberRequested = GetCookie("NumberRequested");
   if ( iNumberRequested == null )
      iNumberRequested = 0;
	for ( i = 1; i <= iNumberRequested; i++ ) {
      database = GetCookie("Request."+i);
      Token0 = database.indexOf("|", 0);
      fields = new Array;
      fields[0] = database.substring( 0, Token0 );                 // Item ID
      if( fields[0] == itemId ){
      	RemoveFromRequest(i);
      	break;
      }
	}
}
function RemoveFromRequest(RemRequest) {
	NumberRequested = GetCookie("NumberRequested");
	
	for ( i=RemRequest; i < NumberRequested; i++ ) {
		NewRequest1 = "Request." + (i+1);
		NewRequest2 = "Request." + (i);
		database = GetCookie(NewRequest1);
		SetCookie (NewRequest2, database, null, "/", sCookieDomain);
	}
	
	NewRequest = "Request." + NumberRequested;
	SetCookie ("NumberRequested", NumberRequested-1, null, "/", sCookieDomain);
	DeleteCookie(NewRequest, "/");
	location.href=location.href;
}

function OpenWin(sURL,sName,sOps){
	if(sURL != null){
		window.open(sURL, sName, sOps);
	}
}
function ClearRequest() {
	iNumberRequested = GetCookie("NumberRequested");
  if ( iNumberRequested == null )
  	iNumberRequested = 0;
  	
  for ( j = 1; j <= iNumberRequested; j++ ) {
  	NumberRequested = GetCookie("NumberRequested");
      for ( i=j; i < NumberRequested; i++ ) {
         NewRequest1 = "Request." + (i+1);
         NewRequest2 = "Request." + (i);
         database = GetCookie(NewRequest1);
         SetCookie (NewRequest2, database, null, "/", sCookieDomain);
      }
      NewRequest = "Order." + NumberRequested;
      SetCookie ("NumberRequested", NumberRequested-1, null, "/", sCookieDomain);
      DeleteCookie(NewRequest, "/");
  }
  location.href=location.href;
}