// JavaScript Document
String.prototype.trim = function()
{

    return this.replace(/(^\s*)|(\s*$)/g,"");

}
var CurPage = 1;
var status;
var DIV_HIGHLIGHT_COLOR = "#DDD";
var DIV_BG_COLOR = "#fff";
var LastSearchKey = "";

function SendByAccKey(e){
	var ev = e || event;
	if (ev.ctrlKey && ev.keyCode == 13){
		$("Send").click();
	}	
}
function Init(){
	GetMessage("boardContent");
}


function $(id){
	return document.getElementById(id);
}

function CheckStr(srcStr){
	var dstStr;
	dstStr = srcStr;
	dstStr = dstStr.replace(/&/g, "&amp;");
	dstStr = dstStr.replace(/\+/g, "&#43;");
	dstStr = dstStr.replace(/</g, "&lt;");
	dstStr = dstStr.replace(/>/g, "&gt;");
	return dstStr;
}

var loadingStr, loadingInterval;
function DisplayLoading(show,objname){
	var dotStr;
	var loadingFunc;
	if (show){
		dotStr = "";
		loadingStr = $(objname).innerHTML;
		$(objname).style.display = "block";		
		loadingFunc = function(){
			if (dotStr.length < 6){
				dotStr += ".";
			}else{
				dotStr = "";
			}
			$(objname).innerHTML = loadingStr + dotStr;
		}
		//loadingInterval = setInterval(loadingFunc, 100);
	}else{
		$(objname).style.display = "none";
		$(objname).innerHTML = loadingStr;
		//clearInterval(loadingInterval);
	}
}

function GetMessage(obj, page ,type , key,evt){
	var param;
	
	if (!evt && window.event)
    {

        evt = window.event;
    }
	
	//alert(evt.keyCode);
	
    var keyPress = evt.keyCode;

	var KEYSHIFT = 16;
	
	var KEYDELETE = 8;

    var KEYUP = 38;

    var KEYDOWN = 40;

    var KEYENTER = 13;

    var KEYTAB = 9;
	if(keyPress==KEYUP ||keyPress==KEYDOWN ||keyPress==KEYENTER ||keyPress==KEYTAB )
	{
		
		return;	
	}
	GetMSG(obj,'',page,type,key);
}



function GetMSG(obj,loadobj,page,type,key){
	var param;
	
	//alert(key);
	status = type;

	if(key==null)
	{
		key = "";	
	}
	
	CurPage = page || CurPage;
	param = "action="+type;
	param += "&page=" + CurPage;
	param += key;
	//alert(param);

	if(loadobj!="")
	{
		DisplayLoading(true,loadobj);
	}
	SendRequest(url + location.search, param, "POST", 
				function(responseText){
					document.getElementById("reviews_cont").innerHTML = responseText;
					//alert(document.getElementById("reviews_cont").innerHTML);
				});	
}

function AddMessage()
{
	var param;
	var strAuthor, strDate, strContent, required;

	strAuthor = escape(CheckStr($("editName").value));
	strContent = escape(CheckStr($("content").value));

	required = false;
	if (strAuthor == ""){
		$("RequireName").style.display = "inline";
		required = true;
	}else{
		$("RequireName").style.display = "none";
	}
	if (strContent == ""){
		$("RequireMessage").style.display = "inline";
		required = true;
	}else{
		$("RequireMessage").style.display = "none";
	}	
	if (required){ 
		return;
	}

	param = "action=AddMessage";
	param += "&author=" + strAuthor;
	param += "&content=" + strContent;

	$("Send").value = "Sending...";
	$("Send").disabled = true;	
	SendRequest(url, param, "POST", 
				function(responseText){
					GetMessage('boardContent');
					$("content").value = "";
				});
}

var IntervalID;

function autoRefresh(obj){
	var rate;
	$("RefreshRate").disabled = !obj.checked;
	$("UpdateRefreshRate").disabled = !obj.checked;
	if (obj.checked){
		if (!isNaN(parseInt($("RefreshRate").value))){
			rate = parseInt($("RefreshRate").value);
		}else{
			rate = 10;
			$("RefreshRate").value = "10";
		}
		clearInterval(IntervalID);
		IntervalID = setInterval("GetMessage('boardContent')", rate * 1000);
	}else{
		clearInterval(IntervalID);
	}
}


function keypressHandler (obj, page ,type , tkey,evt)

{
	//alert("1");
	if($("searchType").value=="usa")
	{
		tkey=tkey+"&state="+$("ustate").value+"&st=United States";
	}
	else
	{
		tkey=tkey+"&state="+$("cstate").value+"&st=Canada";
	}
	GetMessage(obj, page ,type , tkey,evt)
	//alert("1");
	if (navigator.userAgent.indexOf("Safari")!=-1)
	{
		return true;	
	}
	
	
    var div = $("uname");

    //alert(div.style.display);
	

    if (div.style.display == "none")
    {

        return true;

    }

 


    if (!evt && window.event)
    {

        evt = window.event;
    }
    var key = evt.keyCode;
 

    var KEYUP = 38;

    var KEYDOWN = 40;

    var KEYENTER = 13;

    var KEYTAB = 9;

    


    if ((key != KEYUP) && (key != KEYDOWN) && (key != KEYENTER) && (key != KEYTAB))

    {
        	return true;
    }

 
   var selNum = getSelectedSpanNum(div);
   //alert(selNum);
   var selSpan = setSelectedSpan(div, selNum);
    
    if ((key == KEYENTER) || (key == KEYTAB))

    {
	
		if (selSpan)
        {

            _selectResult(selSpan);
			if($("dpm").style.display != "none")
			{
				$("dpm").style.display = "none";
				$("uname").focus();
			}
			else
			{
				GetMSG('dpm','',1,'check',tkey);	
			}

        }
		else
		{
			//alert("in");
			$("dpm").style.display = "none";
			GetMSG('dpm','',1,'check',tkey);
		}

        evt.cancelBubble = true;

        return false;

    }

    else

    {

        if (key == KEYUP)

        {

            selSpan = setSelectedSpan(div, selNum - 1);

        }

        if (key == KEYDOWN)

        {
			
           selSpan = setSelectedSpan(div, selNum + 1);

        }
		//alert(selSpan);

        if (selSpan)

        {

            _highlightResult(selSpan);

        }
		evt.cancelBubble = true;

    }

 

    //showDiv(true);
	//evt.cacelBubble = true;
    return ;

}



function getSelectedSpanNum(div)

{

    var count = -1;

    var spans = $("ul");

    if (spans)

    {
        for (var i = 0; i < spans.childNodes.length; i++)

        {

            count++;
			//alert(count+"|"+spans.style.backgroundColor+"|"+spans.childNodes[i].style.backgroundColor);           
			if (spans.childNodes[i].style.backgroundColor != spans.style.backgroundColor)
            {

                return count;

            }

        }

    }

 

    return -1;

}

 

function setSelectedSpan(div, spanNum)

{
	//alert(spanNum);
    var count = -1;

    var thisSpan;

    var spans = $("ul");
	//alert(spans);
    if (spans)

    {
		//alert(spans.childNodes.length);
		for (var i = 0; i < spans.childNodes.length; i++)
        {

            if (++count == spanNum)
            {

			_highlightResult(spans.childNodes[i]);
                thisSpan = spans.childNodes[i];

            }

            else

            {
				_unhighlightResult(spans.childNodes[i]);

            }

        }

    }

 

    return thisSpan;

}




function selectResult()

{

    _selectResult(this);

}

 


function _selectResult(item)

{
	$("uname").value = item.innerHTML.replace(/<\/?[^>]+>/gi,'').replace('&amp;','&');
    //$("dpm").style.display = "none";
	//GetMSG('search','',1,'check','&key='+$('search').value.replace(/&/g,'amp;')+'&t=sacramento');
	
	
}




function highlightResult()

{

    _highlightResult(this);

}

 

function _highlightResult(item)

{

    item.style.backgroundColor = DIV_HIGHLIGHT_COLOR;

}

 


function unhighlightResult()

{

    _unhighlightResult(this);

}

 

function _unhighlightResult(item)

{

    item.style.backgroundColor = DIV_BG_COLOR;

}



function openwin(win_url,win_name,win_width,win_height) {
    var win_top=(window.screen.height-win_height)/2;
    var win_left=(window.screen.width-win_width)/2;
	
    window.open (win_url, win_name, "height="+win_height+", width="+win_width+", top="+win_top+",left="+win_left+",toolbar =no, menubar=no, scrollbars=yes, resizable=yes, location=no, status=no")

}





function isDate(sDate) {
	var iYear, iMonth, iDay, iIndex

	var	reg
	reg = new RegExp('[^0-9-]','')
	if (sDate.search(reg) >= 0)
		return false;
	
	iIndex = sDate.indexOf('-');
	if ( iIndex == -1 )
		return false;
	else {
		iYear = parseFloat(sDate.substr(0, iIndex));
		if ( isNaN(iYear) || iYear < 1900 || iYear > 2099 )
			return false;
		else
			sDate = sDate.substring(iIndex + 1, sDate.length);
	}
	
	iIndex = sDate.indexOf('-');
	if ( iIndex == -1 )
		return false;
	else {
		iMonth = parseFloat(sDate.substr(0, iIndex));
		if ( isNaN(iMonth) || iMonth < 1 || iMonth > 12 )
			return false;
		else
			sDate = sDate.substring(iIndex + 1, sDate.length);
	}
	
	iIndex = sDate.indexOf('-');
	if ( iIndex >= 0 )
		return false;
	else {
		iDay = parseFloat(sDate);
		if ( isNaN(iDay) || iDay < 1 || iDay > 31 )
			return false;
	}
	
	
	switch(iMonth) {
		case 4:
		case 6:
		case 9:
		case 11:
			if ( iDay > 30 )
				return false;
			else
				break;
		case 2:
			if ( ( ( iYear % 4 == 0 && iYear % 100 != 0 ) || iYear % 400 == 0 ) && iDay > 29 )
				return false;
			else if ( (iYear % 4 != 0 || (iYear % 100 == 0 && iYear % 400 != 0)) && iDay > 28 )
				return false;
			else
				break;
		default:
	}
	return true;
}


