// olib.js methods //
var gURL = '/';
function getValueFromURL(v,u){
	var q=u.split("?");
	if (q.length == 0){
		return "";
	}
	var qry = q[1];
	var vars = qry.split("&");
	var value = "";
	for (i=0;i<vars.length;i++){
		var parts = vars[i].split("=");
		if (parts[0] == v){
			value = parts[1];
			break;
		}
	}
	value = unescape(value);
	value.replace(/\+/g," ");
	return value;
}

function checkform(form){if(form.name.value == ""){alert( "Please enter your Name" );form.name.focus();return false ;}
	if (form.email.value == ""){alert( "Please enter your E-mail id" );form.email.focus();return false;}else{
	val=isValidEmail(form.email.value);if (val==false){alert("Please enter a valid e-mail address");form.email.focus();return false;}}
	if(form.fname.value == ""){alert( "Please enter your friends Name" );form.fname.focus();return false ;}
	if (form.femail.value == ""){alert("Please enter your friends e-mail id" );form.femail.focus();return false;}
	else{val=isValidEmail(form.femail.value);if(val==false){alert("Please enter a valid e-mail address");form.femail.focus();return false;}}
return true;}

/*
 * calls the given url and sets the div's innerHTML to returned content
 */
function populateFromUrl(url, divId){
	var successRetrieve = function(o){
		document.getElementById(divId).innerHTML = o.responseText;
	}
	var failureRetrieve = function(o){
		document.getElementById(divId).innerHTML = 'Failed';
	}
	
	YAHOO.util.Connect.asyncRequest('GET', url, {success:successRetrieve, failure:failureRetrieve});
}

/*
 * Retruns Object consisting of [sid, catchaImgSrc]
 */
function getCaptchaNew(sIdEle,imageEle){
	var seedRange = 100000;
	var seed = Math.floor(Math.random()*seedRange);
	
	var successRetrieve = function(o){
	document.getElementById(sIdEle).value = seed;
	document.getElementById(imageEle).src = o.responseText;
	}
	
	var failureRetrieve = function(o){
	//alert('nothing');
	}
	var url = "http://www.onyomo.com/captcha.html?sid=" + seed + "&action=get";
	YAHOO.util.Connect.asyncRequest('GET', url, {success:successRetrieve, failure:failureRetrieve});
}
// end of olib.js methods //

var removeElement = function(childId){
	var child = document.getElementById(childId);
	child.parentNode.removeChild(child);
}

//----------------------------------------------------------------------------------------------------------------
//TEMP TEXT
//-----------------------------------------------------------------------------------------------------------------

var whichTab = ''                               //name of the tab viz overview,specs,.... for redirecting the summary links

var curr = 0
function onMouseOver(id, ch, r){
	var a = new Array('Awful','Poor','Average','Good','Excellent');
	document.getElementById("hoverRate").innerHTML=a[parseInt(id.substring(id.length-1, id.length))-1];
	var toggle = document.getElementById('oAttr').value;
               if(toggle == 0){
                        curr = id.substring(id.length-1, id.length)
                                for (i=1; i <= parseInt(curr); i++){
                                        document.getElementById(ch+i).src = gURL+"allImages/starf.gif"
                                }
                        for (i=parseInt(curr)+1; i <= 5; i++){
                                document.getElementById(ch+i).src =gURL+"allImages/starh.gif"
                        }
                }
}
function onMouseOut(ch, r){
	document.getElementById("hoverRate").innerHTML='';
        var toggle = document.getElementById('oAttr').value;
                if(toggle == 0){
                        for(i=1; i <=5; i++){
                                document.getElementById(ch+i).src = gURL+"allImages/starh.gif"
                        }
                }
}

function onClick(id, ch, r){
	document.getElementById('oAttr').value = '1';
	curr = id.substring(id.length-1, id.length)
	for (i=1; i <= parseInt(curr); i++){
		document.getElementById(ch+i).src = gURL+"allImages/starf.gif"
	}
	for (i=parseInt(curr)+1; i <= 5; i++){
	        document.getElementById(ch+i).src =gURL+"allImages/starh.gif"
	}
	try{
		document.getElementById('reviewDialogReviewRating').value = curr;
	}catch(e){
		// do nothing
	}
}

var rValue;

function whichPage(x){
	//var sendPageURL = "http://www.onyomo.com/";
	var sendPageURL = strURLPrefix;
	var wL = unescape(document.window.location.href);
	var city = document.getElementById('city').value;
	var scats = _availableScats(city);

        var fA = new Array;var fT = new Array();
        fA[1]='Onyomo Results Page'
        fA[2]='Onyomo Product Details Page'
        fA[3]='Onyomo Product Comparison Page'
        fA[7]='Onyomo Outlet Details Page'

        fT[1]='&lt;br&gt;&lt;br&gt;Your friend searched for '+catName+' at Onyomo and thought the search results might be of interest to you. '+
                         'Click here to view the results.'
        fT[2]='&lt;br&gt;&lt;br&gt;Your friend saw details of '+escape(getValueFromURL("mname",wL))+' at Onyomo and thought that the product might be of interest to you. '+
                         'Click here to view the details.'
        fT[3]='&lt;br&gt;&lt;br&gt;Your friend compared '+catName+' at Onyomo and thought that the comparison set might interest you. '+
                         'Click here to see the comparision.'
        fT[7]='&lt;br&gt;&lt;br&gt;Your friend saw details of '+escape(getValueFromURL("mname",wL))+' at Onyomo and thought that the outlet might be of interest to you. '+
                         'Click here to view the details.'

        var sUrl='',dUrl='',hiddenText=fT[x];
        try{sUrl='<a href='+sendPageURL+"search.html?SearchString="+escape(catName)+'>'+catName+'</a>'}catch(e){}
        try{dUrl='<a href='+sendPageURL+"search.html?SearchString="+escape(getValueFromURL("mname",wL))+'>'+unescape(getValueFromURL("mname",wL))+'</a>'}catch(e){}
        if(hiddenText.match(catName))try{hiddenText=hiddenText.replace(catName,sUrl)}catch(e){}
        if(hiddenText.match(unescape(getValueFromURL("mname",wL))))try{hiddenText=hiddenText.replace(unescape(getValueFromURL("mname",wL)),dUrl)}catch(e){}

        var myText='<a href='+wL.replace(" ","%20")+'>Click here</a>'
        hiddenText=fT[x].replace('Click here',myText)

        var fourArr=new Array()
        for(var k=0;k<scats.length;k++)
                if(scats[k]!=catName)
                        fourArr[fourArr.length]=scats[k]
        randomizeArray(fourArr)

        var text='&lt;br&gt;&lt;br&gt;At Onyomo you can also search for '
        for(var l=0;l<4;l++){
                cUrl='search.html?SearchString='+escape(fourArr[l])
                if(l!=0){text+=', <a href='+cUrl+'>'+fourArr[l]+'</a>'}
                else{text+='<a href='+cUrl+'>'+fourArr[l]+'</a>'}
        }
        text+=' and lot more. Visit us at - <a href='+sendPageURL+'>'+sendPageURL+'</a>'
        if(fA[x])return (fA[x]+'~'+fT[x]+'~'+text+'~'+hiddenText)
        else return null
}

function randomizeArray(myArray){
	var i = myArray.length;
	if ( i == 0 ) return false;
	while (--i) {
		var j = Math.floor( Math.random() * ( i + 1 ) );
		var tempi = myArray[i];
		var tempj = myArray[j];
		myArray[i] = tempj;
		myArray[j] = tempi;
	}
}

function tab(){
	if(YAHOO.onyomo.tabView.get('activeIndex')==1){
		writeReviewTab();
	}
	else{
	YAHOO.onyomo.tabView.addListener('activeTabChange',writeReviewTab);
	}
}
function tabChange(){
	readReviewTab();
	YAHOO.onyomo.tab0.removeListener('activeChange',tabChange);
}
function tabView(){
	YAHOO.onyomo.tabView = new YAHOO.widget.TabView('tabs'); 
	YAHOO.onyomo.tab0 = YAHOO.onyomo.tabView.getTab(0);
	YAHOO.onyomo.tab0.setStyle('margin-left','10px');
	YAHOO.onyomo.tab1 = YAHOO.onyomo.tabView.getTab(1);
	tab();
}
function readReviewTab(){
	var id = document.getElementById("hSubId").value;
	var url=gURL+"revsub.html?action=getTabReview&start=1&subjectId=";
	url+=id;
	var handleSuccess = function(o){
		var response = o.responseText;
		response = response + '<div style="float:right;margin:5px 0px 5px 0px;" id="moreLink"></div>'
		document.getElementById('tab0').innerHTML = response;
		if(document.getElementById('totalReviews').value!='' && document.getElementById('totalReviews').value!=0){
		if(document.getElementById('totalReviews').value>3){
			var link = '&#160;<a href="'+gURL+'./rev.html?subjectId=';
			link += id[1];
			link += '" style="font-size:90%;font-style:italic;">more</a>';
			document.getElementById('moreLink').innerHTML = link
			
			}
		

			document.getElementById('revLink').innerHTML ='<a id="revNum" href="#read" style="font-size:90%;font-style:italic;">' + document.getElementById('totalReviews').value + ' review</a>';
		}
	}
	var handleFailure = function(){
		alert('fail');
	}
	var cObj = YAHOO.util.Connect.asyncRequest('POST', url,{success:handleSuccess,failure:handleFailure});
}
function writeReviewTab(){
	if (getCookie('EH')==''){
	try{
		getCaptchaNew('reviewDialogSid','reviewDialogCaptchaImage');
		YAHOO.util.Dom.setStyle('reviewDialogGuestFields','display','block');
	}catch(e){
		//do nothing;
	}
	}
	else{
		YAHOO.util.Dom.setStyle('reviewDialogGuestFields','display','none');
	}
	YAHOO.onyomo.tabView.removeListener('activeTabChange',writeReviewTab);
}
						
function submitReview(){
	clearReviewDialogErrorMessages()
	document.getElementById('reviewDialogSubmitButton').disabled = true;
	var subjectName = document.getElementById('reviewDialogSubjectNameString').value;
	var city = document.getElementById('reviewDialogCity').value;
	var title = subjectName+' - '+city;
	if(!reviewValidator()){
		document.getElementById('reviewDialogSubmitButton').disabled = false;
		return false;
	}
	
	// argument formId can be the id or name attribute value of the
	// HTML form, or an HTML form object.
	var formObject = document.getElementById('reviewDialogForm');
	YAHOO.util.Connect.setForm(formObject);
	// This example facilitates a POST transaction.
	// An HTTP GET can be used as well.
	
	var handleReviewSuccess = function(o) {
		var response = o.responseText;
		if(!response.match("true")){
			document.getElementById("reviewDialogErrorMsg").innerHTML = response;
			document.getElementById('reviewDialogSubmitButton').disabled = false;
			if(response.match("Wrong value for image")){
				try{
					var captcha = getCaptcha();
					document.getElementById("reviewDialogCaptchaImage").src = captcha['src'];
					document.getElementById("reviewDialogSid").value = captcha['sid'];
					document.getElementById('reviewDialogCaptchaText').value = '';
				}catch(e){
					// do nothing
				}
			}
		} else {
			YAHOO.util.Dom.setStyle('reviewDialogForm','display','none');
			var reviewMessage = '';
			if(response.match('False')){
				reviewMessage = '<div style="text-align:left"><div style="color: rgb(245, 147, 22);">Thanks for your review!</div></div>';
			}
			else if(!getUserName()){
				reviewMessage = '<div style="text-align:left"><div style="color: rgb(245, 147, 22);">Thanks for your review!</div></div>';
			}
			else{
				var url = "www.onyomo.com/rev.html?id="+response.split('+')[1].replace(/^\s+|\s+$/g,"");
				reviewMessage = '<div style="text-align:left"><div style="color: rgb(245, 147, 22);">Thanks for your review!</div><br /><br /><div style="color:#CE5A11;font-style:italic;font-weight:bold;padding-left:2px;">Share this review with your friends&nbsp;&nbsp;&nbsp;';
				reviewMessage +='<a href="www.addthis.com"';
				reviewMessage +=' onmouseover=\"return addthis_open(this, \'\', \''+url+'\',\''+title+'\')\"';
				reviewMessage +=' onmouseout=\'addthis_close()\' onclick=\'return addthis_sendto()\'><img src=\"'+gURL+'allImages/share.gif\"'+'></a>';
				reviewMessage += '</div></div>';
			}
			document.getElementById("reviewDialogMessage").innerHTML = reviewMessage;
		}
	};

	var handleReviewFailure = function(o) {
		document.getElementById('reviewDialogSubmitButton').disabled = true;
		alert("Submission failed: " + o.status);
	};
	
	var cObj = YAHOO.util.Connect.asyncRequest('POST', gURL+'revsub.html', {success:handleReviewSuccess, failure:handleReviewFailure});
	YAHOO.onyomo.tab0.addListener('activeChange',tabChange);
	return false;

}

function overflow(height){
try{
	document.getElementById('summary').style.height = height;
	var over = document.getElementById('summary');
	var t = document.getElementById('temp').offsetHeight;
	var p = over.offsetHeight;
	if(t>p){
	document.getElementById('summaryExpand').style.display = 'inline';
	}
	else{
	document.getElementById('summary').style.height = 'auto';
	document.getElementById('sumDiv').onclick = null;
	document.getElementById('sumDiv').style.cursor = 'default';
	}
							
}catch(e){//do nothing
	}
}

function updateProfile(){
	document.getElementById('profileDialogSubmitButton').disabled = true;
	
	/*if(!profileValidator()){
		document.getElementById('profileDialogSubmitButton').disable = false;
	}*/
	
	var formObject = document.getElementById('profileDialogForm');
	YAHOO.util.Connect.setForm(formObject);
	
	var handleProfileUpdateSuccess = function(o){
		var message = YAHOO.lang.JSON.parse(o.responseText)
		
		if(message.status){
			window.location.href = "./profile.html"
		}
		else{
			document.getElementById("message").innerHTML = message.message
		}
	}
	
	var handleProfileUpdateFailure = function(o) {
		document.getElementById('profileDialogSubmitButton').disabled = true;
		alert("Submission failed: " + o.status);
	};
	
	var cObj = YAHOO.util.Connect.asyncRequest('POST', './profile.html', {success:handleProfileUpdateSuccess, failure:handleProfileUpdateFailure});
	
	return false;
}

function thumb(useful,flag,id){
	if(document.getElementById('voteReviewConfirm'+id).innerHTML!='Rated'){
		if(useful){
			if(flag){
				document.getElementById('thumb_up'+id).src=gURL+'allImages/thumb_up.gif';
			} else { 
				document.getElementById('thumb_up'+id).src=gURL+'allImages/thumb_up_off.png';
			}
		}else { 
			if(flag){
				document.getElementById('thumb_down'+id).src=gURL+'allImages/thumb_down.gif';
			}else{
				document.getElementById('thumb_down'+id).src=gURL+'allImages/thumb_down_off.png';
			}
		}
	}
}

function loginUser(userName, passwd, errorMsg){
	userName = userName ? userName : 'userName';
	passwd = passwd ? passwd : 'passwd';
	errorMsg = errorMsg ? errorMsg : 'errorMsg'

	try{document.getElementById(errorMsg).innerHTML = '';}catch(e){}
	if(!(document.getElementById(userName)&&document.getElementById(passwd))){
		return true;
	} 
	
	var retValue = true;

	var user = document.getElementById(userName).value;
	var password = document.getElementById(passwd).value;
	
	if(user=='' && password==''){
		return true;
	}

	var url = gURL+"login.html?Login=1&user="+escape(user)+"&passwd="+escape(password)+"&rememberMe=false";

	var requestObj = getXmlHttpRequestObject();

	requestObj.onreadystatechange = function(){
		if(requestObj.readyState==4){
			if(requestObj.status==200){
				if(requestObj.responseText.indexOf('true') != -1){
					rerValue = true;
				} else {
					document.getElementById(errorMsg).innerHTML = 'Username or password is incorrect';
					retValue = false;
				}
			}else {
				alert("An error occured while login.")
			}
			
		}
	}

	requestObj.open("GET", url, false);
	requestObj.send(null);

	populateUserSpan();
	
	return retValue;
}
 
/***********************************************************************************************************************************************
	FROM commons.js
***********************************************************************************************************************************************/

// opens window for sending link
function sendLink(){
	var str="height=290,width=350";
	var newwindow=window.open('','name',str);
	var currPageLink;
	if(!currPageLink){
		currPageLink= window.location.href;
	}
	var tmp = newwindow.document;
	var sendMess='';
	var mess='';
	var thePage = 1;
	try{
		thePage = 1;
		var complete = whichPage(thePage);
		var cA = complete.split('~');
		mess=cA[0]+'\n'+cA[1];
		sendMess=cA[0]+''+cA[3]+''+cA[2];
		sendMess=sendMess.replace('<','&lt;');
		sendMess=sendMess.replace('>','&gt;');
	}catch(e){
		// do nothing
	}
	var text = '<html><head><title>OnYoMo - Send this link to a friend</title><link rel="stylesheet" href="onyo.css">';
	text+='<script src="oLib.js" language="JavaScript" type="text/javascript" ></script>';
	text+='<script language=javascript>function loadSendLink(){document.getElementById("popName").focus()}</script>';
	text+='</head><body onload=loadSendLink()>';
	text+='<table border="0" width="350" cellspacing="0" cellpadding="0"><tr><td class="fBGHeader" style="padding-bottom:10px">Send this page to a friend</td></tr><tr><td class=f11p>';
	text+='<form name="sendLink" id="sendLink" onsubmit="return checkform(this);" action="mail.html" method="post"><table border="0" width="100%" cellspacing="0" cellpadding="0">';
	text+='<tr><td class=f11p width="28%">Your Name</td><td width="72%" class=f11p><input name="name" id=popName type="text" size="20"></td></tr>';
	text+='<tr><td class=f11p width="28%">Your E-mail</td><td width="72%" class=f11p><input type="text" name="email" size="20"></td></tr>';
	text+="<tr><td class=f11p width=28%>Friend's Name</td><td class=f11p width=72%><input type=text name=fname size=20></td></tr>";
	text+="<tr><td class=f11p width=28%>Friend's Email</td><td class=f11p width=72%><input type=text name=femail size=20></td></tr>";
	text+='<tr><td class=f11p width="28%">Message</td><td class=f11p width="72%"><textarea rows="4" name="messageUI" cols="25">'+mess+'</textarea></td></tr>';
	text+='<input name=link type=hidden value="'+currPageLink+'"><input type=hidden name=forward value=1><input type=hidden name=contents value="'+sendMess+'"><td class=f11p width=28%>&nbsp;</td><td class=f11p>';
	text+='<input type="submit" value="Send" name="Sumbit"></form></td></tr></table></td></tr>';
	text+='<tr><td class=f11p style="padding-right:25px" align=right><a class=f100r href="javascript:self.close()">Close</a></td></tr>';
	text+='</table>';
	text+='</body></html>';
	tmp.write(text);
	tmp.close();
}


/*********TEXT-IT METHODS*******************/
function textItWin(msg,r,mercId,city){
	var message = unescape(msg);
	var src = 'textIt'+r;
	var img_src = 'sms_onyomo.gif';
	
	for(var x=0; x<10; x++){
		try{
			document.getElementById('textIt'+x).parentNode.removeChild(document.getElementById('element'+x));
		}catch(e){
			// do nothing
		}
	}

	var s = '<table width=300 cellspacing=0 cellpadding=0 border=0>';
	s += '<tr><td colspan=2><table width=100% border=0 cellspacing=0 cellpadding=0><tr><td valign=center><img src="'+iURL+'/onyomoHeaderlogo_sms.gif" border=0 /></td>';
	s += '</tr></table></td></tr><tr><td>';
	s += '<form id=smsFrm' + r + ' name=smsFrm action=javascript:void(0)><div id=subElement1'+r+' style="display:none">';
	s += '<span class="text">Your request has been sent, you will shortly receive an SMS from OnYoMo.com<br><br>Thanks for using this service</span>';
	s += '</div></td><td><table id=subElement6'+r+' cellspacing=0 cellpadding=0 border=0 width=100%><tr><td rowspan=3 valign=center style="width:100px"><img src='+iURL+'/'+img_src+'></img></td><td width=3%></td><td valign=top style="padding-top:3px" id=subElement4'+r+'>';
	s += '<span class="titleText">Message:&nbsp;</span><span class="Text">'+message+'</span></span>';
	s += '</td></tr></div><tr><td width=3%></td><td height=25 valign=middle style="padding-top:5px;padding-bottom:5px"><div id=subElement2'+r+' class="text"><span style="color:#F59316"><b>FREE:</b> sms this info to your mobile</span></td></tr>';
	s += '<tr><td width=3%></td><td id=subElement3'+r+'><table cellspacing=0 cellpadding=0 width=100% border=0><tr><td class="titleText">Number</td><td class=text style="padding:left:2px;padding-right:2px"><input name=number tabindex=4 type=text size=11 style="padding-left:2px;border:1px solid #999999" id=smsNum'+r+'></td>';
	s += '<td class=text><input id=sendSmsB'+r+' type=submit name="Send" value="Send" onclick=javascript:sendSMS('+mercId+','+r+',"'+city+'");return false; tabindex=5 title="Send" style="height:20px;width:40px;font-family:sans-serif, Arial, Helvetica;font-size:13px;background:#F5F5F5;border:1px solid #999999"></td></tr>' +
		  '<tr><td/><td colspan="2" class="text"><input type="checkbox" id="smsRem'+r+'"/> <span class="titleText" style="font-size:10px;">Remember this number</span>'+'</td></tr>'  +	'</table></td></tr></table>';
	s += '</td></tr></form><tr><td width=100% colspan=2>';
	s += '<table cellspacing=0 cellpadding=0 border=0 width=100%><tr><td width=100% align=right class=text style="padding-top:5px"><a href=javascript:removeElement("element'+r+'") title="Close" style="font-size:15px;font-weight:bold">&#215;</a></td></tr></table>';
	s += '</td></tr></tr></table></div>';

    var elm = document.createElement("div");
    elm.id = "element"+r;
    elm.style.background = "#FFFFFF";
    elm.style.position = "absolute";
	elm.style.border = "1px solid #999999";
	elm.style.padding = "2px";
	var sss = YAHOO.util.Dom.getX(src)-300+60;
	elm.style.left = sss+"px";
	elm.style.top = YAHOO.util.Dom.getY(src) + 20 +"px";
	elm.style.width = "300px";
	elm.style.zIndex = "105";
	document.getElementById(src).parentNode.appendChild(elm);
	document.getElementById('element'+r).innerHTML = s;
	
	document.getElementById('smsNum'+r).value = getCookie('TEXTIT_NUM');
	if(document.getElementById('smsNum'+r).value == ''){
		document.getElementById('smsNum'+r).value = getCookie('mobileNo');
	}
	if(document.getElementById('smsNum'+r).value==''){
		document.getElementById('smsNum'+r).maxlength='eg:9812345678'.length+1;
		document.getElementById('smsNum'+r).value='eg:9812345678';
		document.getElementById('smsNum'+r).style.color = '#888888';
		document.getElementById('smsNum'+r).onfocus = function(){
			document.getElementById('smsNum'+r).value = '';
			document.getElementById('smsNum'+r).maxlength = 11;
			document.getElementById('smsNum'+r).style.color = '';
			document.getElementById('smsNum'+r).onfocus = '';
		};
	}
}

function sendSMS(mercId,r, city){
	var number = document.getElementById('smsNum'+r).value;
	
	if(isValidMobileNo(number)){
		var jValue = r;
		var u = gURL+'sms.html';
		var sV = 'num='+number+'&id='+mercId+'&city='+escape(city);
		
		if(document.getElementById('smsRem'+r).checked){
			setCookie('TEXTIT_NUM',number,365);
		}
		
		var smsSuccess = function(o){
			try{YAHOO.util.Dom.setStyle('subElement1'+jValue,"display","")}catch(e){}
            try{YAHOO.util.Dom.setStyle('subElement2'+jValue,"display","none")}catch(e){}
            try{YAHOO.util.Dom.setStyle('subElement3'+jValue,"display","none")}catch(e){}
            try{YAHOO.util.Dom.setStyle('subElement4'+jValue,"display","none")}catch(e){}
            try{YAHOO.util.Dom.setStyle('subElement6'+jValue,"display", "none")}catch(e){}

		}
		
		var smsFailure = function(o){
			alert("There was a problem retrieving the response for SMS:\n" +o.status);
		}
	
		YAHOO.util.Connect.asyncRequest('POST', u, {success:smsSuccess, failure:smsFailure}, sV);
		
	}else{
		document.getElementById('smsNum'+r).value = "";
		document.getElementById('smsNum'+r).focus();	
		return false;
	}
	return false;
}
/*********END OF TEXT-IT METHODS************/

function loadFormData(subjectId, city, subjectName){
	var captcha;
	try{
		captcha = getCaptcha();
		document.getElementById("editDialogCaptchaImage").src = captcha['src'];
		document.getElementById("editDialogSid").value = captcha['sid'];
	}catch(e){
		// do nothing
	}

	var details;
	document.getElementById('editDialogComments').value='';
	showFlagBox('userAction');

	var request = getXmlHttpRequestObject();
	var url = './pmo.html?&city='+escape(city)+'&id='+escape(subjectId)+'&pcode='+escape(subjectName)+'&t=b';
	
	request.open("GET", url, false);
	request.send('');
	
	if(request.readyState == 4 && request.status==200){
		var results = request.responseXML.documentElement.getElementsByTagName("record")[0];
	    details = new Object();
	    details['id'] = results.getAttribute('id');
	    for(var i=0;i<results.childNodes.length;i++){
	    	try{
		    	details[results.childNodes[i].nodeName] = results.childNodes[i].firstChild.nodeValue;
		    }catch(e){
		    	// do nothing
		    }
	    }
	}
	
	var outletCity = details['outletCity'];
    var locality = details['outletLocality'];
    
    document.getElementById('editDialogOutletName').innerHTML = (details['outletName'] || '');
    document.getElementById('editDialogCity').value = outletCity || '';
    document.getElementById('editDialogCategory').value = details['outletSubCat'] || '';
    document.getElementById('editDialogCurrentCategory').value = details['outletSubCat'] || '';
    document.getElementById('editDialogContactNumber').value = details['outletTel1'] || '';
    document.getElementById('editDialogLocality').value = locality || '';
    document.getElementById('editDialogRecordId').value = details['id'];
    document.getElementById('editDialogMerchantId').value =details['merchantId'];
    var address = '';
    if(details['outletAddress1']){
    	address = details['outletAddress1'];
    }
    if(details['outletAddress2']){
    	if(address!=''){
    		address +='\n';
    	}
    	address += details['outletAddress2'];
    }
    if(details['outletAddress3']){
    	if(address!=''){
    		address +='\n';
    	}
    	address += details['outletAddress3'];
    }
	document.getElementById('editDialogOutletAddress').value = address;
    document.getElementById('editDialogOutletPin').value = details['outletPin'] || '';
}

function showEditDialog(subjectId, city, subjectName){
	loadFormData(subjectId, city, subjectName)
	YAHOO.util.Dom.setStyle('editDialogFormContent','display','block');
	YAHOO.util.Dom.setStyle('editDialogGuestFields','display',getCookie('EH')==''?'block':'none');
	YAHOO.onyomo.dialogs.editDialog.show()
}

YAHOO.namespace("onyomo.dialogs");

function clearEditDialogErrorMessages(){
	document.getElementById('editDialogContactNumberErrorMsg').innerHTML = '';
	document.getElementById('editDialogOutletPinErrorMsg').innerHTML = '';
	document.getElementById('editDialogCommentsErrorMsg').innerHTML = '';
	document.getElementById('editDialogErrorMsg').innerHTML = '';
	document.getElementById('editDialogCaptchaErrorMsg').innerHTML = '';
	document.getElementById('editOutletMessage').innerHTML = '';
}

function clearReviewDialogErrorMessages(){
	document.getElementById('reviewDialogMessage').innerHTML = '';
	document.getElementById('reviewDialogErrorMsg').innerHTML = '';
	document.getElementById('ratingMessage').innerHTML = '';
	document.getElementById('titleMessage').innerHTML = '';
	document.getElementById('reviewTextAreaMessage').innerHTML = '';
}

function initEditDialog() {

	var handleSuccess = function(o) {
		var response = o.responseText;
		if(response.indexOf("error")!=-1){
			document.getElementById("editOutletMessage").innerHTML = response.substring(7);
		} else {
			YAHOO.util.Dom.setStyle('editDialogFormContent','display','none');
			document.getElementById("editOutletMessage").innerHTML = 'Thank you for the information. We will incorporate the information in our database after verification';
			YAHOO.lang.later( 3000 , YAHOO.onyomo.dialogs.editDialog , 'hide' )
		}
	};
	var handleFailure = function(o) {
		alert("Submission failed: " + o.status);
	};

	// Instantiate the Dialog
	YAHOO.onyomo.dialogs.editDialog = new YAHOO.widget.Dialog("editDialog", 
																{ width : "480px",
																  visible : false, 
																  constraintoviewport : true,
																  fixedcenter: true,
																  underlay: 'none',
																  modal: true,
																  effect:{effect:YAHOO.widget.ContainerEffect.FADE,duration:0.1}
																 } );
	
	// Validate the entries in the form
	YAHOO.onyomo.dialogs.editDialog.validate = function() {
		clearEditDialogErrorMessages();
		
		if(!loginUser('editDialogUserName','editDialogPasswd','editDialogErrorMsg')){
			return false;
		}
		YAHOO.util.Dom.setStyle('editDialogGuestFields','display',getCookie('EH')==''?'block':'none');

		var flag = true;
		if(document.getElementById('editDialogUserAction').checked){
		
			var outletPin = YAHOO.lang.trim(document.getElementById('editDialogOutletPin').value);
			
			if(outletPin != '' && !isValidPinCode(outletPin)){
				document.getElementById('editDialogOutletPinErrorMsg').innerHTML = 'Please enter correct pin code';
				flag = false;
			}
			
			var captchaElement = document.getElementById('editDialogCaptchaText');
			if(getCookie('EH')==''){
				var captchaText = YAHOO.lang.trim(captchaElement.value);
		
				if(captchaText==''){
					document.getElementById('editDialogCaptchaErrorMsg').innerHTML = 'Please enter text';
					flag = false;
				}
			}
	
		}else{
			if( YAHOO.lang.trim(document.getElementById('editDialogComments').value) == ''){
				document.getElementById('editDialogCommentsErrorMsg').innerHTML = "Please enter comment";
				flag = false;
			}
		}
		
		return flag;
	};

	// Wire up the success and failure handlers
	YAHOO.onyomo.dialogs.editDialog.callback = { success: handleSuccess,
												 failure: handleFailure };
	
	// Render the Dialog
	YAHOO.onyomo.dialogs.editDialog.render();
	
}

function reviewValidator(){
	if(!loginUser('reviewDialogUserName','reviewDialogPasswd','reviewDialogErrorMsg')){
		return false;
	}
	
	var valid = true;

	if(YAHOO.lang.trim(document.getElementById('reviewDialogReviewRating').value)=='0'){
		document.getElementById('ratingMessage').innerHTML = 'Rating needs to be filled before submitting.';
		valid = false;;
	}
	if(YAHOO.lang.trim(document.getElementById('reviewDialogTitle').value)==''){
		document.getElementById('titleMessage').innerHTML = 'Title needs to be filled before submitting.';
		valid = false;;
	}

	var reviewContent = YAHOO.lang.trim(document.getElementById('reviewDialogReview').value);
	var reviewContentTitle = document.getElementById('reviewDialogReview').title;
	if(reviewContent.length == 0 || reviewContent == reviewContentTitle){
		document.getElementById('reviewTextAreaMessage').innerHTML = 'Review needs to be filled before submitting.';
		valid = false;;
	}

	if(YAHOO.lang.trim(document.getElementById('reviewDialogRecommendations').value).indexOf('e.g.')==0){
		document.getElementById('reviewDialogRecommendations').value = '';
	}

	var captchaElement = document.getElementById('reviewDialogCaptchaText');
	if(getCookie('EH')==''){
		var captchaText = YAHOO.lang.trim(captchaElement.value);

		if(captchaText==''){
			document.getElementById('reviewDialogCaptchaErrorMsg').innerHTML = 'Please enter text';
			valid = false;
		}
	}
	return valid;
}

function showFlagBox(show){	
	clearEditDialogErrorMessages();
	if(show=='userAction'){
		YAHOO.util.Dom.setStyle('editDialogEditForm','display','block');
		YAHOO.util.Dom.setStyle('editDialogFlagForm','display','none');
	}else if(show=='userCategory') {
		YAHOO.util.Dom.setStyle('editDialogFlagForm','display','block');
		YAHOO.util.Dom.setStyle('editDialogEditForm','display','none')
	}else{
		YAHOO.util.Dom.setStyle('editDialogEditForm','display','none');
		YAHOO.util.Dom.setStyle('editDialogFlagForm','display','none');
		
	}
}

function submitVote(reviewId, value, rId){
	if(! getUserName() ){
		document.getElementById('voteReviewConfirm'+rId).innerHTML='<a href="javascript:authenticate()">Login</a> <span style="color:#f00">now to vote</span>'
		return;
	}
	
	var handleSuccess = function(o){
		var message = YAHOO.lang.JSON.parse(o.responseText)
		if(message.status){
			if(value){
				document.getElementById('thumb_up'+rId).src=gURL+'allImages/thumb_up.gif';
				document.getElementById('thumb_down'+rId).src=gURL+'allImages/thumb_down_off.png';
			} else{
				document.getElementById('thumb_up'+rId).src=gURL+'allImages/thumb_up_off.png';
				document.getElementById('thumb_down'+rId).src=gURL+'allImages/thumb_down.gif';
			}
			
			document.getElementById('thumb_up'+rId).onclick = null;
			document.getElementById('thumb_up'+rId).onmouseover = null;
			document.getElementById('thumb_up'+rId).onmouseout = null;
			document.getElementById('thumb_down'+rId).onclick = null;
			document.getElementById('thumb_down'+rId).onmouseover = null;
			document.getElementById('thumb_down'+rId).onmouseout = null;

			document.getElementById('voteCount'+rId).innerHTML = message.message;
                        document.getElementById('voteReviewConfirm'+rId).innerHTML='Rated'
		}else{
                        document.getElementById('voteReviewConfirm'+rId).innerHTML = '<span class="errorText">'+message.message+'</span>';
		}
		
	}
	
	var handleFailure = function(o){
		
	}

	var callback =
	{
	  success:handleSuccess,
	  failure:handleFailure
	};
	
	var sUrl = gURL+"revsub.html";
	YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, ("action=vote&reviewId="+reviewId+"&vote="+value));

}

function reportReviewAbuse(reviewId, rId){
	if(! getUserName() ){
		document.getElementById('voteReviewConfirm'+rId).innerHTML='<span style="color:#f00"><a href="javascript:authenticate()">Login</a> to report abuse</span>'
		return;
	}
	
	var handleSuccess = function(o){
		var message = YAHOO.lang.JSON.parse(o.responseText)
		
		if(message.status){
			document.getElementById('voteReviewConfirm'+rId).innerHTML='Reported'
		}
		else{
			document.getElementById('voteReviewConfirm'+rId).innerHTML= message.message;
		}
	}
	
	var handleFailure = function(o){
		
	}

	var callback =
	{
	  success:handleSuccess,
	  failure:handleFailure
	};
	
	var sUrl = gURL+"abuse.html";
	YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, ("action=review&id="+reviewId));

}

function urlHash(caption,referer){
	var hash = window.location.hash;
	var hashValue = '';
	var html ='<div class="item"><div class="infoTitle">';
	try{
	if(hash){
	hash = hash.substring(1);
	hashArr = hash.split('^');
	var hashDict = new Array();
	for(i=0;hashArr.length>i;i++){
		if(hashArr[i].indexOf(referer+'=')>-1){
		hashCode = hashArr[i].split('=');
		hashValue = hashCode[1];
		break;
		}
	};
	if(hashValue.length>0 && hashValue!=''){
	html += caption;
	html += '</div><div class="infoValue">';
	html += hashValue;
	html += '</div><div class="cF"></div></div>';
	document.getElementById(referer).innerHTML = html; 
	}
	}	
	}
	catch(e){
	//do nothing
	}	
}
