var d = window.document;

//--------------------------------------
function SetCookie(p_Name, p_Value, p_ExpiresDays) {//to delete set p_ExpiresDays = -1000
//--------------------------------------
    var today   = new Date();
    var expiry  = new Date(today.getTime() + p_ExpiresDays * 24*60*60*1000);
    var CookieStr=p_Name + "=" + escape(p_Value) + ";path=/";
    if(p_ExpiresDays < 0){
    	CookieStr += ";expires=Mon, 05 Feb 2007 05:00:00 GMT";
    }else{
    	if(p_ExpiresDays == 0){
    		CookieStr += ";";
    	}else{
    		CookieStr += ";expires=" + expiry.toGMTString();
    	}
    }
//if(p_ExpiresDays != 0){ CookieStr += ";expires=" + expiry.toGMTString()}
window.document.cookie = CookieStr;
}
//--------------------------------------
function GetCookie(p_Name) {
//--------------------------------------
  var search = p_Name + "="
  var returnvalue = "";
  if (d.cookie.length > 0) {
    offset = d.cookie.indexOf(search);
    if (offset != -1) { 
      offset += search.length;
      end = d.cookie.indexOf(";", offset);
      if (end == -1) end = d.cookie.length;
      returnvalue=unescape(d.cookie.substring(offset, end))
      }
   }
  return returnvalue;
}
//--------------------------------------
function ProcessBuyClick(p_ProductNum) {
//--------------------------------------
    d.getElementById("SelectedProductID").value = p_ProductNum;
    if (parseFloat(d.getElementById("shipping_local" + p_ProductNum).value) > 0 ) {
        if (d.getElementById("region").value == ""){
            ShowRegionPopupDiv();
            return false;
        }else{
             if ( d.getElementById("is_downloadable_flag" + p_ProductNum).value == 'y') {
                ShowDownloadPopupDiv();
                return false;
            }else{
                SetProductFields(); 
                return true;
            }
        }
    }else{
        ShowDownloadPopupDiv();
        return false;
    }
}
//--------------------------------------
function ProcessSubmitRegionSelect(){
//--------------------------------------
    if (d.getElementById("region_australia").checked 
    ||  d.getElementById("region_overseas").checked )
    {
        HideRegionPopupDiv();
        var l_SelectedProductID = d.getElementById("SelectedProductID").value;
        if (d.getElementById("region_australia").checked ){
           // d.getElementById("region").value    = "australia";
            d.getElementById("shipping").value  = d.getElementById("shipping_local" + l_SelectedProductID).value;
            SetCookie("region", "australia", 0);
        }else{
            if (d.getElementById("region_overseas").checked ){
               // d.getElementById("region").value    = "overseas";
                d.getElementById("shipping").value  = d.getElementById("shipping_overseas" + l_SelectedProductID).value;
                SetCookie("region", "overseas", 0);
            }else{// will never happen
                SetCookie("region", "", 0);
            }
        } 

        if ( d.getElementById("is_downloadable_flag" + l_SelectedProductID).value == 'y') {
            ShowDownloadPopupDiv();
        }else{
            SetProductFields(); 
        }
    } else {
        alert("Please select a region before proceeding to the shopping cart.")
    }

}
//--------------------------------------
function ProcessDownloadMesssage(){
//--------------------------------------
    HideDownloadPopupDiv();
    SetProductFields(); 
}
//--------------------------------------
function ProcessSpecialDealBuyClick(p_ProductNum, p_CheckboxName, p_MaxNumCheckboxes){
//--------------------------------------
    if ( AreFiveItemsSelected(p_CheckboxName, p_MaxNumCheckboxes) ){
        d.getElementById("item_name" + p_ProductNum).value = "Special deal: " + ConvertSelectedCheckboxesToString(p_CheckboxName, p_MaxNumCheckboxes);
        ProcessBuyClick(p_ProductNum);
    }else{
    
    }
}
//--------------------------------------
function AreFiveItemsSelected(p_CheckboxName, p_MaxNumCheckboxes){
//--------------------------------------
    l_NumSelected  = 0;
    for ( l_CheckboxNum = 1; l_CheckboxNum <= p_MaxNumCheckboxes; l_CheckboxNum++){
        if (document.getElementById(p_CheckboxName + l_CheckboxNum)){
            if (document.getElementById(p_CheckboxName + l_CheckboxNum).checked){
               l_NumSelected++;
            }
        }
    }
    if (l_NumSelected == 5){
        return true;
    }else{
        alert("Please select 5 items from the list.");
        return false;
    }
}
//--------------------------------------
function ConvertSelectedCheckboxesToString(p_CheckboxName, p_MaxNumCheckboxes){
//--------------------------------------
    l_Selected  = '';
    for ( l_CheckboxNum = 1; l_CheckboxNum <= p_MaxNumCheckboxes; l_CheckboxNum++){
        if (document.getElementById(p_CheckboxName + l_CheckboxNum)){
            if (document.getElementById(p_CheckboxName + l_CheckboxNum).checked){
               if (l_Selected == '' ){
                    l_Selected  += document.getElementById(p_CheckboxName + l_CheckboxNum).value ;
               }else{
                    l_Selected  += '; ' + document.getElementById(p_CheckboxName + l_CheckboxNum).value;
               }
            }
        }
    }
    return l_Selected;
}
//--------------------------------------
function SetProductFields() {
//--------------------------------------
    var l_SelectedProductID = d.getElementById("SelectedProductID").value;
    d.getElementById("amount").value        = d.getElementById("amount" + l_SelectedProductID).value;
    d.getElementById("item_name").value     = d.getElementById("item_name" + l_SelectedProductID).value;
	d.getElementById("item_number").value   = d.getElementById("SelectedProductID").value;
    d.getElementById("quantity").value      = 1;

    SetCookie("CartProductIDList", AddItemToList_OnlyStoreUniqueItems(l_SelectedProductID, GetCookie("CartProductIDList"), "x"), 0);
    d.getElementById("shopping_url").value  = document.location.href;
    d.getElementById("cancel_return").value = document.location.href;
    // uncomment the following lines for testing 
    //d.getElementById("shipping").value  = "0.01";
    //d.getElementById("amount").value    = "0.01";
    d.Form1.submit();
	return true;
}
//--------------------------------------
function AddItemToList_OnlyStoreUniqueItems(p_Item, p_List, p_Separator){
//--------------------------------------
    if (p_List  == '' ) {
        p_List  = p_Item;
    }else{
         if ( !StringExistsInList(p_Item, p_List, p_Separator) ){
            p_List  = p_List + p_Separator + p_Item;
         }
    }
    return p_List;
}
//--------------------------------------
function StringExistsInList(p_SearchFor, p_List, p_Separator){
//--------------------------------------
    if (p_List  == '' ) {
        return false;
    }else{
        var l_ListArray = p_List.split(p_Separator);
        var l_ListArraySize = l_ListArray.length;
        for (l_Item = 0; l_Item < l_ListArraySize; l_Item++){
            if (l_ListArray[l_Item] == p_SearchFor){
                return true;
            }
        }
        return false;        
    }
}
//--------------------------------------
function GetXYOffset(p_ElementID) {
//--------------------------------------
  this.top=0;
  this.left=0;
  var obj = d.getElementById(p_ElementID);
  for (; obj; obj = obj.offsetParent) {
    this.top  += obj.offsetTop;
    this.left += obj.offsetLeft;
  }
}
//--------------------------------------
function HideRegionPopupDiv(){
//--------------------------------------
    d.getElementById("PostageHideableDiv").style.visibility     ='hidden';
    d.getElementById("PostageHideableDiv").style.display        ='none';
    d.getElementById("PostageHideableIframe").style.visibility  ='hidden';
    d.getElementById("PostageHideableIframe").style.display     ='none';
}
//--------------------------------------
function ShowRegionPopupDiv(){
//--------------------------------------
    var l_SelectedProductID = d.getElementById("SelectedProductID").value;
  	var objOffset           = new GetXYOffset("ProductImage" + l_SelectedProductID);
	d.getElementById("PostageHideableDiv").style.left           = ((objOffset.left - 60)) + 'px';
    d.getElementById("PostageHideableDiv").style.top            = ((objOffset.top - 90)) + 'px';	
    d.getElementById("PostageHideableDiv").style.visibility	    = "visible";
    d.getElementById("PostageHideableDiv").style.display        = 'block';
    d.getElementById("PostageHideableIframe").style.left        = ((objOffset.left - 60)) + 'px';
    d.getElementById("PostageHideableIframe").style.top         = ((objOffset.top - 90)) + 'px';	
    d.getElementById("PostageHideableIframe").style.visibility	= "visible";
    d.getElementById("PostageHideableIframe").style.display     = 'block';
}
//--------------------------------------
function HideDownloadPopupDiv(){
//--------------------------------------
    d.getElementById("DownloadHideableDiv").style.visibility     ='hidden';
    d.getElementById("DownloadHideableDiv").style.display        ='none';
    d.getElementById("DownloadHideableIframe").style.visibility  ='hidden';
    d.getElementById("DownloadHideableIframe").style.display     ='none';
}
//--------------------------------------
function ShowDownloadPopupDiv(){
//--------------------------------------
    var l_SelectedProductID = d.getElementById("SelectedProductID").value;
  	var objOffset           = new GetXYOffset("ProductImage" + l_SelectedProductID);
	d.getElementById("DownloadHideableDiv").style.left           = ((objOffset.left - 60)) + 'px';
    d.getElementById("DownloadHideableDiv").style.top            = ((objOffset.top - 90)) + 'px';	
    d.getElementById("DownloadHideableDiv").style.visibility	 = "visible";
    d.getElementById("DownloadHideableDiv").style.display        = 'block';
    d.getElementById("DownloadHideableIframe").style.left        = ((objOffset.left - 60)) + 'px';
    d.getElementById("DownloadHideableIframe").style.top         = ((objOffset.top - 90)) + 'px';	
    d.getElementById("DownloadHideableIframe").style.visibility	 = "visible";
    d.getElementById("DownloadHideableIframe").style.display     = 'block';
}
//--------------------------------------
function CancelAddToCart(){
//--------------------------------------
    d.getElementById("SelectedProductID").value = "";
    d.getElementById("region").value = "";
    d.getElementById("region_australia").checked   = false;
    d.getElementById("region_overseas").checked    = false;
}

