//common component js
function init()
{
	if ( document.implementation && document.implementation.createDocument )
	{
		XMLDocument.prototype.__defineGetter__( "xml", function(){ return new XMLSerializer().serializeToString( this ); } );
		Node.prototype.__defineGetter__("xml", function (){return (new XMLSerializer()).serializeToString(this);});	
		Node.prototype.__defineGetter__("text",function(){ return this.textContent; } );
		Node.prototype.__defineSetter__("text",function(txt){if(txt!=null&&txt != undefined)this.textContent=String(txt);});
		XMLDocument.prototype.loadXML = function(xmlString)
		{
			var childNodes = this.childNodes;
			for (var i = childNodes.length - 1; i >= 0; i--)
			{	this.removeChild(childNodes[i]); }
			var dp = new DOMParser();
			var newDOM = dp.parseFromString(xmlString, "text/xml");
			var newElt = this.importNode(newDOM.documentElement, true);
			this.appendChild(newElt);
		};
		// Implement selectNodes and selectSingleNode in Firefox
		if( document.implementation.hasFeature("XPath", "3.0") )
		{
			XMLDocument.prototype.selectNodes = function(cXPathString, xNode)
			{
				if( !xNode ) { xNode = this; } 

				var oNSResolver = this.createNSResolver(this.documentElement);
				var aItems = this.evaluate(cXPathString, xNode, oNSResolver, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
				var aResult = [];	
				for( var i = 0; i < aItems.snapshotLength; i++)
				{
					aResult[i] =  aItems.snapshotItem(i);
				}
				
				return aResult;
			};
			XMLDocument.prototype.selectSingleNode = function(cXPathString, xNode)
			{
				if( !xNode ) { xNode = this; } 
				
				var oNSResolver = this.createNSResolver(this.documentElement);
				var aItems = this.evaluate(cXPathString, xNode, oNSResolver, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
				//var xItems = this.selectNodes(cXPathString, xNode);
				if( aItems && aItems.snapshotLength > 0 )
				{
					return aItems.snapshotItem(0);
					//return xItems[0];
				}
				else
				{
					return null;
				}
			};

			Element.prototype.selectNodes = function(cXPathString)
			{
				if(this.ownerDocument.selectNodes)
				{
					return this.ownerDocument.selectNodes(cXPathString, this);
				}
				else{throw "For XML Elements Only";}
			};

			Element.prototype.selectSingleNode = function(cXPathString)
			{	
				if(this.ownerDocument.selectSingleNode)
				{
					return this.ownerDocument.selectSingleNode(cXPathString, this);
				}
				else{throw "For XML Elements Only";}
			};

		}
	}
}
init();
var changInterval = null;
var curNum = 0;
function changePanal(obj)
{
    curNum = obj;
    var cont = document.getElementById("sliderDiv");
    var sliderUl = document.getElementById("sliderUl");
    if(!cont || !sliderUl) return; 
    var movTo = (obj) * 637;
    var curPos = cont.style.left;
    if(changInterval)
    {
        clearInterval(changInterval);
    }
    changInterval = window.setInterval(function()
		{
			var contLeft = parseInt(cont.style.left.replace(/px/g, ""));
			if( isNaN(contLeft))
			{
				contLeft = 0;
			}
			if(movTo == -contLeft )
			{
				clearInterval(changInterval);
			}
			else
			{
			    var mt = movTo + contLeft;
			    mt += 10;
			    if (mt == 0)
			    {
				    clearInterval(changInterval);
				    cont.style.left = contLeft + 10 +"px";
			    }
			    else
			    {
				    cont.style.left = contLeft - mt/10 + "px";;
			    }
			}
		}, 1);
	
}
function callchangePanal()
{
    var slider = document.getElementById("sliderDiv");
   if (!slider) 
   {
        clearOnloadInterval();
       return; 
   } 
   var sliderCount = 0; 
    if (!slider.children) 
    {
        sliderCount = slider.attributes[1].value; 
    }
   else
   {
        sliderCount = slider.children.length;
   } 
	var randomNum=Math.floor((Math.random()*10))%sliderCount
	while(curNum == randomNum) 
	{
		randomNum=Math.floor((Math.random()*10))%sliderCount;
	}
	
	changePanal(randomNum);
	
}
function clearOnloadInterval(oInterval)
{
    if (oInterval) 
    {
         if(typeof(oInterval) != "undefined")
	    {
		    clearInterval(oInterval)
	    }
    }
    else
    {
        if(typeof(onloadInterval) != "undefined")
	    {
		    clearInterval(onloadInterval)
	    }
    }
	
}
var onloadInterval = setInterval(callchangePanal,5000);

var flgTOHidden = false;
var outInterval = null;
function OnReviewOut(objID)
{
    outInterval = setTimeout(function()
    {
        if(flgTOHidden !=true)
        return;
        var sitelist = document.getElementById(objID);
        if (sitelist == null) 
        {
            return;
        }
        sitelist.style.top = '45px';
        sitelist.style.display = "none"
        sitelist.style.opacity = 0;
    },1000);
    
};
function showList()
{
    //flgTOHidden = 1;
    if(typeof(outInterval) != "undefined")
    {
        clearTimeout(outInterval);
    }
    
}
function HideList(objID)
{

    if (!flgTOHidden) 
    {
        return;
    }
    var sitelist = document.getElementById(objID);
    if (sitelist == null) 
    {
        return;
    }
    sitelist.style.top = '55px';
    sitelist.style.display = "none"
    sitelist.style.opacity = 0;
    flgTOHidden = false;
}
function OnReviewOver(objID)
{
    var sitelist = document.getElementById(objID);
    if (sitelist == null) 
    {
        return;
    }
    AddSitelistContent(sitelist); 
    if(sitelist.style.display == "block")
    {
        return;
    }
    setTimeout(function()
    {
        sitelist.style.opacity = 0.5;
        sitelist.style.top = '45px';
        sitelist.style.display = 'block';
        setTimeout(function()
        {
            sitelist.style.opacity = 1;
            sitelist.style.top = '38px';
            flgTOHidden = true;
        },200)
    },100);
}
function OnBodyOver(event)
{
    var sitelist = document.getElementById("sitelist");
    if (sitelist == null) 
    {
        return;
    }
    if(sitelist.style.display != "block")
    {
        return;
    }
    var siteX1 = sitelist.offsetLeft;
    var siteX2 = siteX1 + sitelist.offsetWidth;
    var siteY1 = sitelist.offsetTop;
    var siteY2 = siteY1 + sitelist.offsetHeight;
    if (event.clientX < siteX1 || event.clientX > siteX2 || event.clientY+10 < siteY1 || event.clientY > siteY2) 
    {
        sitelist.style.top = '55px';
        sitelist.style.display = "none"
        sitelist.style.opacity = 0;
        flgTOHidden = false;
    }
    flgTOHidden = true;
}
function AddFavorite(sURL, sTitle)
{
   try
   {
       window.external.addFavorite(sURL, sTitle);
   }
   catch (e)
   {
       try
       {
           window.sidebar.addPanel(sTitle, sURL, "");
       }
       catch (e)
       {
           alert("add failed£¬please use 'Ctrl+D' to add!");
       }
   }
}
function Submitcomment()
{
  var commentForm = document.getElementById("comment");
 if (commentForm) 
 {
    commentForm.submit(); 
 } 
   
    
   // window.form.comment.submit()
}
var listDoc = null;
function AddSitelistContent(sitelist)
{
    if (listDoc == null) 
    {
         listDoc = createXmlDomFromFile("reviewsmap.xml"); // for local
       // listDoc = createXmlDomFromFile("http://reviewstown.com/common/script/reviewsmap.xml"); 
    }
    if(!listDoc)return;
   var listNode = null;
    listNode = listDoc.selectNodes("/sitemap/list");
   var listContent = " <span class='SitePanel' id='_ctl0_sitelist1'>";
   var countEachColumn = 0;
   for(var i=0;i<listNode.length;i++)
   {
        var listName = listNode[i].selectSingleNode("@name").nodeValue;
        var listHref = listNode[i].selectSingleNode("@href").nodeValue; 
        listContent += "<a href='"+listHref+"' onclick=\"HideList('sitelist')\" target=\"_blank\" style=\"font-weight: bold;\">" +listName+ "</a><br/>"
        countEachColumn ++
       if (countEachColumn > 25) 
       {
            listContent += "</span>"
           if (i<listNode.length) 
           {
                listContent +=" <span class='SitePanel' id='_ctl0_sitelist1'>";
           } 
          countEachColumn = 0; 
       } 
       
        //<a href="www.iphone.com" onclick="HideList('sitelist')" target="_blank" style="font-weight: bold;">iphone</a>
	
   }
   sitelist.innerHTML = listContent + "</span>";
}

function createXmlDomFromFile(filePath)
{
	if ("" == filePath)
		return null;
		
	var dom = createXmlDom();
	if( !dom.load( filePath ) )
	{
		return null;
	}
	return dom;
};
// Create new DOM object(IE,FireFox)
function createXmlDom()
{
    var dom;
    if( window.ActiveXObject )
    {
	    dom = new ActiveXObject( "MSXML2.FreeThreadedDomDocument.3.0" );
	    dom.async = false;
	    dom.setProperty("SelectionLanguage", "XPath");
	}
	else if ( document.implementation && document.implementation.createDocument )
    {
        dom = document.implementation.createDocument("","",null);
        dom.async = false;
    }
    else
    {
        alert("XmlDOM is not supported on the brawser!");
    }
	return dom;
};