////////////////////////////////////
var PageCache = new Array;

function _RefreshObj(lan,cateID,mallID,storeID,regionID,sCateID,itemID,totalNo,startNo,endNo,objType,objName,targetObjType,targetObjName,HomePageSEOKey)
{

	var objString = document.getElementById(targetObjType+":"+targetObjName);	
	
	if(homeContent.ObjectID=="")
	{
		homeContent.ObjectID = targetObjType+":"+targetObjName;
		homeContent.Content   = objString.innerHTML ;
	}
	
	var modifiedLocation ="section:"+lan;
		modifiedLocation +=":"+cateID;
		modifiedLocation +=":"+mallID;
		modifiedLocation +=":"+storeID;
		modifiedLocation +=":"+regionID;
		modifiedLocation +=":"+sCateID;
		modifiedLocation +=":"+itemID;
		modifiedLocation +=":"+totalNo;
		modifiedLocation +=":"+startNo;
		modifiedLocation +=":"+endNo;
		modifiedLocation +=":"+objType;
		modifiedLocation +=":"+objName;
		modifiedLocation +=":"+targetObjType;
		modifiedLocation +=":"+targetObjName;
	
	var keyID = sCateID;  
	if (keyID*1 == 0)  keyID = itemID;
    	
	if(typeof PageCache[keyID*1] != 'undefined')
	{
	
		if(typeof PageCache[keyID*1][startNo*1] != 'undefined')
		{	

			for(var i=0;i<PageCache[keyID*1][startNo*1].length;i++)
			{
				if(PageCache[keyID*1][startNo*1][i].objKey == (objType+":"+objName))
				{				    
					objString.innerHTML = PageCache[keyID*1][startNo*1][i].PageString;					
					//////////add into browser history//////////////																		
					dhtmlHistory.add(modifiedLocation,"1");					
					///////////////////////
					return;
				}
			}			
		}
		else 
			PageCache[keyID*1][startNo*1] = new Array;						
	}
	else 
	{
		PageCache[keyID*1] = new Array;
		PageCache[keyID*1][startNo*1] = new Array;
	}
			
	objString.innerHTML = "<table width=100%><tr><td width=50></td><td><br><br><br><img src=\"/image/"+lan+"/loading.jpg\"></td></tr></table>";	
	
	var url  = ajaxServer+"/"+ajaxObj+"?language="+lan;    
		url += "&cateID="+cateID;
		url += "&mall_id="+mallID;		
		url += "&storeID="+storeID;    	
		url += "&regionID="+regionID;		
		url += "&scateID="+sCateID;
		url += "&itemID="+itemID;
		url += "&total="+totalNo;
		url += "&startNo="+startNo;
		url += "&endNo="+endNo;
		url += "&objType="+objType;
		url += "&objName="+objName;
		url += "&targetObjType="+targetObjType;
		url += "&targetObjName="+targetObjName;
		url += "&HomePageSEOKey="+HomePageSEOKey;
	//objString.innerHTML = url;	
    //alert(url);      
	var req = new AJAXRequest(url, RefreshObjHandler);
	updateBuffer = new PageUpdateBuffer(targetObjType+":"+targetObjName,sCateID,startNo,itemID,objType+":"+objName,modifiedLocation);
    
	req.send();	
}

function RefreshObj(lan,cateID,mallID,storeID,regionID,sCateID,itemID,totalNo,startNo,endNo,objType,objName,targetObjType,targetObjName)
{

    _RefreshObj(lan,cateID,mallID,storeID,regionID,sCateID,itemID,totalNo,startNo,endNo,objType,objName,targetObjType,targetObjName,"");
	
}

var targetArea = "";
var ajaxServer = "";
var ajaxObj	   = "RefreshObj.jxml";
function RefreshObjHandler(displayString)
{   	
    var refreshBlock = document.getElementById(updateBuffer.targetArea);
        
	var disp = displayString.split("<!---object inner seperator--->");
	
	refreshBlock.innerHTML  = disp[1];// displayString;
	        
    /////////////Save Into Cache/////////////
    var keyID = updateBuffer.sCateID;  
	if (keyID*1 == 0)  keyID = updateBuffer.itemID;	
	PageCache[keyID*1][updateBuffer.startNo*1][PageCache[keyID*1][updateBuffer.startNo*1].length] = new PageCacheUnit(updateBuffer.ObjectKey,disp[1]);
	//////////update URL history////////////////////// 
	dhtmlHistory.add(updateBuffer.modifiedLocation,"1");
	
}


function PageCacheUnit(ObjectKey,PageString)
{
	this.PageString = PageString;
	this.objKey		= ObjectKey;
}
var updateBuffer = new PageUpdateBuffer("","","","","");

function PageUpdateBuffer(targetArea,sCateID,startNo,itemID,ObjectKey,modifiedLocation)
{
	this.targetArea = targetArea;
	this.sCateID	= sCateID;
	this.startNo	= startNo;
	this.itemID		= itemID;
	this.ObjectKey  = ObjectKey;
	this.modifiedLocation = modifiedLocation;
}
//////////////////
// initialize ourselves when the page is
// finished loading
window.onload = initialize;
/** Our function that initializes when the page
    is finished loading. */
function initialize() {
		
   // initialize the DHTML History framework
   dhtmlHistory.initialize();
   
   // add ourselves as a DHTML History listener
   dhtmlHistory.addListener(handleHistoryChange);

 	  
   // determine what our initial location is
   // by retrieving it from the browser's
   // location after the hash
   var currentLocation = 
      dhtmlHistory.getCurrentLocation();
  
   // if there is no location then display
   // the default, which is the inbox
   if (currentLocation == "")    {
	  	//alert(document.body.innerHTML);				//HomeTitle    =   document.title;
		//HomeContent  =   document.body.innerHTML;		//alert(HomeContent);
	  //LoadingBehind();	  return;   }
           
   // display this initial location      
   var param = currentLocation.split(":");     
   RefreshObj(param[1],param[2],param[3],param[4],param[5],param[6],param[7],param[8],param[9],param[10],param[11],param[12],param[13],param[14]);   //LoadingBehind();
}
function LoadingBehind(){
	for(var i = 1;i<AutoLoad.length;i++)	{
		//var  i = 1;		//LoadObject(AutoLoad[i]);				if(VerifyLoadingStatus(AutoLoad[i])!="1") //not loaded yet		{
			/////////Build URL//////////
			var _url  = ajaxServer+"/"+ajaxObj;			for(var j=0;j<AutoLoad[0].length ;j++)			{			  if(j==0)  _url = _url+"?"+AutoLoad[0][j]+"="+AutoLoad[i][j];			  else  _url = _url+"&"+AutoLoad[0][j]+"="+AutoLoad[i][j];							}	
			_url = _url +"&autoloadi="+i;			//////////Call DOM///////////
			var req = new AJAXRequest(_url, AutoLoadingObjHandler);
	
			req.send();			}
	}}
function VerifyLoadingStatus(LoadingDetails)
{
	if(LoadingDetails[14]=="")
		return "0";
	else return "1";	
}

function AutoLoadingObjHandler(RStr)
{

//	var refreshBlock = document.getElementById("OAdvanceHtml:HomePageCenterPart");    
	
//	refreshBlock.innerHTML =  RStr;
		
	var _RStr = RStr.split("<!---object seperator--->");   
	for(var i=0;i<_RStr.length;i++)
	{
		var _RStrData = _RStr[i].split("<!---object inner seperator--->");

	    var reqStr = eval(_RStrData[0]);
	    var sCateID = reqStr[5];
	    var startNo = reqStr[6];
	    
		if(typeof PageCache[sCateID*1] == 'undefined')
		{
			PageCache[sCateID*1] = new Array;
			PageCache[sCateID*1][startNo*1] = new Array;
		}
		else if(typeof PageCache[sCateID*1][startNo*1] == 'undefined')
			PageCache[sCateID*1][startNo*1] = new Array;
 	    
	    PageCache[sCateID*1][startNo*1][PageCache[sCateID*1][startNo*1].length] = new PageCacheUnit(reqStr[10]+":"+reqStr[11],_RStrData[1]);
	    if(reqStr[14]!="") AutoLoad[reqStr[14]*1][14] = "1";
	}
	
}var AutoLoad = new Array;
var homeContent = new HomeContent("","");function HomeContent(_ObjID,_Content){
	this.ObjectID = _ObjID;
	this.Content  = _Content;}
/** Handles history change events. */
function handleHistoryChange(newLocation, 
                             historyData) {
                      
   if(newLocation=="")    {		if(HomeContent.length>0)		{		
			var objString = document.getElementById(homeContent.ObjectID);				
			objString.innerHTML = homeContent.Content;		}				      return;   }
   // update the browser to respond to this
   // DHTML history change
   var param = newLocation.split(":");   
   RefreshObj(param[1],param[2],param[3],param[4],param[5],param[6],param[7],param[8],param[9],param[10],param[11],param[12],param[13],param[14]);
}

///////////////order submit //////////////////////////////////////////
function order(form)
{
	//var option1NameExist = document.getElementById("option1Name");
	//var option2NameExist = document.getElementById("option2Name");
	//var option3NameExist = document.getElementById("option3Name");
	
	//if (option1NameExist != null){
		if(form.options1)
		{
			if(form.options1[form.options1.selectedIndex].value=="0")
			{
				alert("Please "+form.options1[form.options1.selectedIndex].innerHTML);
				return;
			}
		}
	//}
	
	//if (option2NameExist != null){
		if(form.option2)
		{
			if(form.options2[form.options2.selectedIndex].value=="0")
			{
				alert("Please "+form.options2[form.options1.selectedIndex].innerHTML);
				return;
			}
		}
	//}
	
	//if (option3NameExist != null){
		if(form.options3)
		{
			if(form.options3[form.options3.selectedIndex].value=="0")
			{
				alert("Please "+form.options3[form.options3.selectedIndex].innerHTML);
				return;
			}
		}
	//}
	form.submit();
}

