/*this page crates an ajax request object.
this page is included by other pages that need to perform XMLHttpRequest.
*/
var ncajax=false;
function ajaxtest()
{
if(window.XMLHttpRequest)
	ncajax=new XMLHttpRequest();		//IE 7,mozilla,safari,firefox.opera, mostbrowser
else if(window.ActiveXObject)			//older IE
{
	try { 
		ncajax = new ActiveXObejct("Msxml2.XMLHTTP");
		} catch (e1) {
			try {
				ncajax = new ActiveXObejct("Microsoft.XMLHTTP");
				} catch (e2) {}
			}
}
//if(!ncajax)	
	//document.getElementById('ajax_msg').innerHTML="Some page fuctionality is unavailable.";
}
/////////////captcha functions
function refersh_capcha(frm,site_root)
{	
	if(ncajax)
	{
		ncajax.open('get',site_root+'/core/check_image.php?site_root='+site_root);
		ncajax.onreadystatechange=handle_capcha;	
		ncajax.send(null);
	}else
	//ncself_submit(frm);//if not ajax work then self submit
	//alert('Caphca will be refreshed upon form submission');
	document.getElementById('errmsg').innerHTML = 'Caphca will be refreshed upon form submission';
		return false;
}
function ncself_submit(frm)
{	
	frm.action="";
	for(i=0;i<frm.elements.length;i++)
		if(frm.elements[i].name=="submit")
			frm.elements[i].name="submit_captcha";
	frm.submit();
}	

function handle_capcha()
{	
	if((ncajax.readyState==4) && (ncajax.status==200))
	{
		document.getElementById('captcha_img').innerHTML=ncajax.responseText;
		imageid=ncajax.responseText.match(/.*ncticket_id=([0-9]+)/);
		document.getElementById('image_id').value=imageid[1];
		//image_id.value=imageid[1];
	}
}

/////////review functions
function review_rate(id,rate,ncitem,help_per)
{
	if(ncajax)
	{
		ncajax.open('get','review_rate_ajax.php?newid='+id+'&rate='+rate+'&ncitem='+ncitem+'&help_per='+help_per);
		ncajax.onreadystatechange=handle_review_rate;	
		ncajax.send(null);
		return false;
	}//else
	//{
	// ncstr=open('get','review_rate_ajax.php?id='+id+'&rate='+rate+'&ncitem='+ncitem);
	// alert(ncstr.text)
	//}
	//else
	//document.getElementById('userexist').innerHTML = 'Username will be confirmed upon form submission1';
}

function handle_review_rate()
{		
	if((ncajax.readyState==4) && (ncajax.status==200))
	{	
		itemval=ncajax.responseText.match(/\?\?\?(.+)\?\?\?/);
		itemid=ncajax.responseText.match(/\?\?\?.+\?\?\?(.+)$/);
		if(itemval)
		document.getElementById(itemid[1]).innerHTML=itemval[1];
		alert (ncajax.responseText.replace(/\?\?\?(.+)/,""));
	}
}

/////////compare functions
function add_compare(id,ac)
{	
	if(ncajax)
	{
		ncajax.open('get','add_tocompare.php?ac='+ac+'&newid='+id+'&aj=1');
		ncajax.onreadystatechange=handle_add_compare;	
		ncajax.send(null);
		return false;
	}
}

function handle_add_compare()
{		

	if((ncajax.readyState==4) && (ncajax.status==200))
	{
		imageid=ncajax.responseText.split(/\?\?\?/);
		if(imageid.length>2)///remove
		{	
			var cmpstr=imageid[2].replace(/(.*)---/,"");
			var lnkid=imageid[2].replace(/---(.*)/,"");
			if(imageid[1]>3)
			{
				document.getElementById("cmp"+lnkid).innerHTML='';
				if(imageid[1]<=4)
				document.getElementById("compbtn").innerHTML='';
				else
				document.getElementById("compbtn").innerHTML=cmpstr;
			}else
			{
				document.getElementById("cmp"+lnkid).innerHTML='';			
				document.getElementById("empty").innerHTML='Empty';			
			}	
		}else if(imageid.length==2)// add compare list
		{
			var tempdiv=document.createElement("div");
			var disstr=imageid[1].replace(/---(.*)/,"");
			ncid=disstr.match(/add_tocompare\.php\?ac=rem&aj=0&newid=([^']+)/);
			tempdiv.id="cmp"+ncid[1];
			tempdiv.innerHTML=disstr;
			document.getElementById("empty").innerHTML='';
			document.getElementById("compare").appendChild(tempdiv);
			if(document.getElementById("compare").childNodes.length >= 3 )
				document.getElementById("compbtn").innerHTML=imageid[1].replace(/(.+)---/,"");
		}
		alert (ncajax.responseText.replace(/\?\?\?(.+)/,""));
	}
}

/////////suggestion functions
function show_suggestion()
{	
	if(ncajax)
	{
		ncajax.open('get','show_suggestion.php');
		ncajax.onreadystatechange=handle_show_suggestion;	
		ncajax.send(null);
		return false;
	}
}
var wordarr=new Array();
function handle_show_suggestion()
{		
	if((ncajax.readyState==4) && (ncajax.status==200))
		wordarr=ncajax.responseText.split(/<br>/);

}
	var TAB = 9;
	var ESC = 27;
	var KEYUP = 38;
	var KEYDN = 40;
	var ENTER = 13;
	highlighted = "";
	pupupid="";
	fieldid="";
function search_text(fieldname,ncpopup,evt1)
{
	fieldid=fieldname;
	fieldid.className="";
	str=fieldid.value;
	pupupid=ncpopup;
	//var hey = (evt1)?evt1.target:window.event.srcElement;
	var key = getKeyCode(evt1);
	switch(key)
	{
	//The control keys were already handled by onkeydown, so do nothing.
	case TAB:
	case ESC:
	case KEYUP:
	case KEYDN:
		return;
	case ENTER:
		return false;
		break;
	default:
		//alert(key);
		if(str!="")
		{
			document.getElementById(pupupid).innerHTML="";
			document.getElementById(pupupid).style.display='block';
			//alert(wordarr.length)
			for(var i=0; i<wordarr.length;i++)
			{
				var thisstr=wordarr[i];
				
				if(thisstr.toLowerCase().indexOf(str.toLowerCase())==0)//search for starting text
				{
					var tempdiv=document.createElement("div");
					
					tempdiv.innerHTML=thisstr;
					tempdiv.onclick=makeChoice;
					fieldid.onkeydown=keyselction;
					tempdiv.className="suggession";
					tempdiv.onmouseover = function(){ highlightThis(this,'y')}
					tempdiv.onmouseout  = function(){ highlightThis(this,'n')}
					document.getElementById(pupupid).appendChild(tempdiv);
					
				}
			}
			
			var ncfound=document.getElementById(pupupid).childNodes.length;
			if(ncfound==0)
			{
				fieldid.className="error";
				hidpopup();
			}
			//if(ncfound==1)
			//{
			//	fieldid.value=document.getElementById("popups").firstChild.innerHTML;
			//	document.getElementById("popups").firstChild.innerHTML="";
			//}
		}else
		hidpopup();
	}
}

	function highlightThis(obj,yn){
	//alert(fieldid.value);
		if (yn == 'y'){
			highlighted.className = 'suggession';
			highlighted = obj;
			highlighted.className = 'keyselection';
			fieldid.value=highlighted.innerHTML;
		}else{
			highlighted.className = 'suggession';
			highlighted = '';
		}
	}

function makeChoice(evt)
{	
	var thisDiv = (evt)?evt.target:window.event.srcElement;
	fieldid.value=thisDiv.innerHTML;
	hidpopup();
}
function makeChoicetab(highlighted)
{	
	fieldid.value=highlighted.innerHTML;
}
function keyselction(evt)
{	
	var key = getKeyCode(evt);
	switch(key)
	{
		case TAB:
		case ENTER:
			if (highlighted != '' && highlighted != null ){
				//acChoose(me.highlighted.id);
				makeChoicetab(highlighted);
			}
			hidpopup();
			return false;
		break;

		case ESC:
			hidpopup();
			return false;
		break;

		case KEYUP:
			changeHighlight('up');
			return false;
		break;

		case KEYDN:
			changeHighlight('down');
			return false;
		break;
	}
	
}
function hidpopup()
{
	document.getElementById(pupupid).innerHTML="";
	document.getElementById(pupupid).style.display='none';
}
function changeHighlight(way){
	obj=document.getElementById(pupupid);
	fill_obj=fieldid;
	if(obj.style.display=='none')//if pop not displayed return
	return;
		if (highlighted != '' && highlighted != null ){
			highlighted.className = 'suggession';

			switch(way){
				case 'up':
					if(obj.firstChild == highlighted){
						highlighted = obj.lastChild;
					}else{
						highlighted = highlighted.previousSibling;
					}
				break;
				case 'down':
					if(obj.lastChild == highlighted){
						highlighted = obj.firstChild;
					}else{
						highlighted = highlighted.nextSibling;
					}
				break;
				
			}
			fill_obj.value=highlighted.innerHTML;
			highlighted.className = 'keyselection';
			//me.highlighted.className = 'selected';
			//me.setElemValue();
		}else{
			switch(way){
				case 'up':
					highlighted = obj.lastChild;
				break;
				case 'down':
					highlighted =obj.firstChild;
				break;
				
			}
			fill_obj.value=highlighted.innerHTML;
			highlighted.className = 'keyselection';
			//me.setElemValue();
		}
	}
function getKeyCode(ev)
{
	if(ev)			//Moz
	{
		return ev.keyCode;
	}
	if(window.event)	//IE
	{
		return window.event.keyCode;
	}
};