var userId;
var smallLoader = jQuery('<img border="0" src="/img/loadSmall.gif" title="please wait" class="loader" style="padding-left: 5px;"/>');
var submitted = false;
var removedClass = 'nothingIsHere';

function toggleSubmit(ctrl){
	var subFeed = jQuery('#submitFeedback');
	var pager = jQuery('#pagerDiv');
	var feedbackPager = document.getElementById('feedBackPagerDiv');

	//if(subFeed){
		if(ctrl.className == 'tab2 down' || ctrl.className == 'tab2'){
			subFeed.show();
			pager.hide();
		}else{
			pager.show();
			subFeed.hide();
		}

		if(ctrl.className != 'tab1 down' && ctrl.className != 'tab1'){
			pager.hide();
		}

                var tabPagerRemoved = false;

                if(ctrl.className.indexOf(removedClass) != -1){
                    pager.show();
                    removedClass = 'nothingIsHere';
                    tabPagerRemoved = true;
                }

		if(!(ctrl.className == 'tab2 down' || ctrl.className == 'tab2'
			|| ctrl.className == 'tab1 down' || ctrl.className == 'tab1' || tabPagerRemoved)){
			feedbackPager.style.display = '';
			
			//to reoload pager according to the selected tab
			selectedUserID = ctrl.className;
			selectedUserID = selectedUserID.replace('tab','');
			selectedUserID = selectedUserID.replace('user', '');
			selectedUserID = selectedUserID.replace('down','');
			selectedUserID = selectedUserID.replace(' ','');
			reloadTabPager(selectedUserID);
		}
		else
		{
			feedbackPager.style.display = 'none';
		}

		if(pager.attr('innerHTML') == '<br style="clear: both;"/>'){
			pager.hide();
		}	
	//}
}

function SubmitFeedBack(isFoodGuide){
	
	var isLoggedIn = document.getElementById('isLoggedIn');
	var errorLabel = document.getElementById('ratingError');
	if(!isFoodGuide){
		var f = document.getElementsByName('food');
		var s = document.getElementsByName('speed');
		var v = document.getElementsByName('value');
		errorLabel.innerHTML = '';
		if(!f[0].checked && !f[1].checked && !f[2].checked && !f[3].checked && !f[4].checked){
			errorLabel.innerHTML = 'rating is required';
		}
	
		if(!s[0].checked && !s[1].checked && !s[2].checked && !s[3].checked && !s[4].checked){
			errorLabel.innerHTML = 'rating is required';
		}
	
		if(!v[0].checked && !v[1].checked && !v[2].checked && !v[3].checked && !v[4].checked){
			errorLabel.innerHTML = 'rating is required';
		}
	}else{
		var f = document.getElementsByName('food');
		var a = document.getElementsByName('ambiance');
		var s = document.getElementsByName('service');
		var v = document.getElementsByName('value');
		var t = document.getElementsByName('toilet');
		
		errorLabel.innerHTML = '';
		if(!f[0].checked && !f[1].checked && !f[2].checked && !f[3].checked && !f[4].checked){
			errorLabel.innerHTML = 'rating is required';
		}
	
		if(!a[0].checked && !a[1].checked && !a[2].checked && !a[3].checked && !a[4].checked){
			errorLabel.innerHTML = 'rating is required';
		}
	
		if(!s[0].checked && !s[1].checked && !s[2].checked && !s[3].checked && !s[4].checked){
			errorLabel.innerHTML = 'rating is required';
		}
	
		if(!v[0].checked && !v[1].checked && !v[2].checked && !v[3].checked && !v[4].checked){
			errorLabel.innerHTML = 'rating is required';
		}
	
		if(!t[0].checked && !t[1].checked && !t[2].checked && !t[3].checked && !t[4].checked){
			errorLabel.innerHTML = 'rating is required';
		}
	}
	//if(!validateOnly){
	submitted = true;
	if(errorLabel.innerHTML == ''){
		if(isLoggedIn){
			var feedbackForm = document.getElementById('myFeedbackForm');
			feedbackForm.submit();
		}else{
			//this function is present in the md.fastregister.js file (in index.tpl.html)
			fastRegistration(0,0,1);
		}
	}
	//}
	
}

function validateFeedback(){
	if(submitted){
		var isLoggedIn = document.getElementById('isLoggedIn');
		var errorLabel = document.getElementById('ratingError');
		var f = document.getElementsByName('food');
		var a = document.getElementsByName('ambiance');
		var s = document.getElementsByName('service');
		var v = document.getElementsByName('value');
		var t = document.getElementsByName('toilet');
		errorLabel.innerHTML = '';
		if(!f[0].checked && !f[1].checked && !f[2].checked && !f[3].checked && !f[4].checked){
			errorLabel.innerHTML = 'rating is required';
		}

		if(!a[0].checked && !a[1].checked && !a[2].checked && !a[3].checked && !a[4].checked){
			errorLabel.innerHTML = 'rating is required';
		}

		if(!s[0].checked && !s[1].checked && !s[2].checked && !s[3].checked && !s[4].checked){
			errorLabel.innerHTML = 'rating is required';
		}

		if(!v[0].checked && !v[1].checked && !v[2].checked && !v[3].checked && !v[4].checked){
			errorLabel.innerHTML = 'rating is required';
		}

		if(!t[0].checked && !t[1].checked && !t[2].checked && !t[3].checked && !t[4].checked){
			errorLabel.innerHTML = 'rating is required';
		}
	}	
}

jQuery(function()

{
	//attach click events for quick validation of rating
	jQuery('[name=food]').click(function(event){validateFeedback()});
	//jQuery('[name=speed]').click(function(event){validateFeedback()});
	jQuery('[name=value]').click(function(event){validateFeedback()});
	jQuery('[name=service]').click(function(event){validateFeedback()});
	jQuery('[name=ambiance]').click(function(event){validateFeedback()});
	jQuery('[name=toilet]').click(function(event){validateFeedback()});
	
	if(jQuery('#foodVal').length != 0)
	{
		var f = document.getElementById('food'+document.getElementById('foodVal').value);
		f.checked = true;
	}
	if(jQuery('#ambianceVal').length != 0)
	{
		var a = document.getElementById('ambiance'+document.getElementById('ambianceVal').value);
		a.checked = true;
	}
	if(jQuery('#serviceVal').length != 0)
	{
		var s = document.getElementById('service'+document.getElementById('serviceVal').value);
		s.checked = true;
	}
	if(jQuery('#valueVal').length != 0)
	{
		var v = document.getElementById('value'+document.getElementById('valueVal').value);
		v.checked = true;
	}
	if(jQuery('#toiletVal').length != 0)
	{
		var t = document.getElementById('toilet'+document.getElementById('toiletVal').value);
		t.checked = true;
	}
	
	
	jQuery('[name=addUserTab]').click(function(event)
	{
		userId = this.id.split('=')[1];
		var userName = this.id.split('=')[2];
		
		if(jQuery('.p7TP_tabs .tab'+userId+'user').length == 0){
		
			
			//add tab div
			if(jQuery('.p7TPcontent .tab'+userId+'user').length == 0){//condition so that not to build the html again
				jQuery('.p7TPcontent').append('<div id="tab'+userId+'user" class="tab'+userId+'user"></div>');
				jQuery('.p7TPcontent .tab'+userId+'user').append('<div id="loader" style="margin: 0;"><div style="text-align: center; font-weight: bold;">Loading...   <img src="/img/loadMedium.gif" title="loading..." /></div></div>');
				//jQuery(this).html(smallLoader);
				
				//build tab content (get user feedback history as html) & set it in callback
				var callback = "userTabCallback(xmlHttp.responseText, '"+userId+"')";
				//send ajax request
				goAjax('/Feedback/?cmd=userFeedbacks&uId='+userId,'GET',callback);
				
				//inserting user feedback history
				//jQuery('.p7TPcontent .tab'+userId).empty();
				//jQuery('.p7TPcontent .tab'+userId).append('user content');
			}
			
			//append tab to top
			jQuery('#feedbackTabbing').append('<div class="tab'+userId+'user" onclick="toggleSubmit(this)" ><a href="javascript:;">'+userName+' <span id="'+userId+'" onmouseout="this.className=\'open_tab\';" onmouseover="this.className=\'close_tab\';" onclick="closeUserTab(this)"  class="open_tab">x</span></a></div>');
					
			
			jQuery('.p7TP_tabs .tab'+userId+'user').click(function(event)
		    {
	
		        jQuery('.down').toggleClass('down');
	
		        jQuery('.p7TPcontent div[class^=tab]').hide();
	
		        jQuery('.p7TPcontent .' + jQuery(this).attr('class')).show();
	
		        jQuery(this).toggleClass('down');
		        
		        
	
		    });
		}
		
		jQuery.scrollTo(jQuery('#endSteps'), 1000, {easing: 'easeOutExpo'});
		setTimeout('jQuery(\'.p7TP_tabs .tab\'+userId+\'user\').click()',900);
		
	});
	
	if(jQuery('#custFeedbackCount')[0].innerHTML == '0')
	{
		jQuery('.p7TP_tabs .tab2').click();
		jQuery('.p7TP_tabs .tab1').hide();
	}
	
	if(window.location.href.indexOf('pmf') != -1){
		jQuery('.p7TP_tabs .tab2').click();
	}
	
	if(jQuery('#goBackToLink').attr('href').indexOf('Account') != -1){
		jQuery('.p7TP_tabs .tab2').click();
	}
	
	if(jQuery('#foodVal').length != 0 || jQuery('#ambianceVal').length != 0 || jQuery('#serviceVal').length != 0 || jQuery('#valueVal').length != 0 || jQuery('#toiletVal').length != 0)
	{
		jQuery('.p7TP_tabs .tab2').click();
		var fId = document.getElementById('fId');
		var submitForm = document.getElementById('myFeedbackForm');
		
		
		if(jQuery('#feedbackCommentText').length != 0){
			submitForm.action = '?cmd=saveComment&fId='+fId.value;
			jQuery('[name=food]').attr('disabled',true);
			jQuery('[name=ambiance]').attr('disabled',true);
			jQuery('[name=service]').attr('disabled',true);
			jQuery('[name=value]').attr('disabled',true);
			jQuery('[name=toilet]').attr('disabled',true);
		}
		else{
			submitForm.action = '?cmd=updateFeedback&fId='+fId.value;
		}
	}
	
	if(jQuery('#pager').length == 0){
		jQuery('#pagerDiv').empty();
		var browser=navigator.appName;// to get browser name
		if(browser == 'Microsoft Internet Explorer'){jQuery('#pagerDiv').remove();}
	}
	
	if(jQuery('#sbtUserFeed').length != 0){
		jQuery('.p7TP_tabs .tab2').click();
	}
});

function userTabCallback(respText, selectedUserId){
	
	var newFeedbackPagerDivTempHTMLID = 'feedBackPagerDivTemp'+selectedUserId+'user';
	var newFeedbackPagerDivTempJQueryID = '#'+newFeedbackPagerDivTempHTMLID;
	//var newPagerHTMLID = '"pager'+userId+'"';
	
	//replace the pager key word with pager[UserID]	
	//respText = respText.replace('"pager"', newPagerHTMLID);	
	respText = respText.replace('feedBackPagerDivTemp', newFeedbackPagerDivTempHTMLID);	/**/
	
	jQuery('.p7TPcontent .tab'+selectedUserId+'user').empty();
	jQuery('.p7TPcontent .tab'+selectedUserId+'user').append(respText);
	//jQuery('.p7TP_tabs .tab'+userId+'user').click();
	//jQuery.scrollTo(jQuery('#endSteps'), 1000, {easing: 'easeOutExpo'});
	
	
	jQuery('a',  newFeedbackPagerDivTempJQueryID).each( function() {
		jQuery(this).attr("OnClick", "userFeedOnClick('"+ jQuery(this).attr('href') +"', '"+ selectedUserId+"');return false;");
		//jQuery(this).attr("href","#");
		});
	var html = jQuery(newFeedbackPagerDivTempJQueryID).html();
	
	jQuery('#feedBackPagerDiv').empty();
	jQuery('#feedBackPagerDiv').append(html);	/**/
}
//to reoload pager according to the selected tab
function reloadTabPager(selectedUserId)
{
	var newFeedbackPagerDivTempHTMLID = 'feedBackPagerDivTemp'+selectedUserId+'user';
	var newFeedbackPagerDivTempJQueryID = '#'+newFeedbackPagerDivTempHTMLID;
	
	var html = jQuery(newFeedbackPagerDivTempJQueryID).html();
	
	jQuery('#feedBackPagerDiv').empty();
	jQuery('#feedBackPagerDiv').append(html);
}

function userFeedOnClick(href, selectedUserId)
{
	// build tab content (get user feedback history as html) & set it in
	// callback
	var callback = "userTabCallback(xmlHttp.responseText, '"+selectedUserId+"')"; 
		// send ajax request
		var index = href.indexOf("?");
		if(index>=0)
		{
			var newHref = href.substr(index);
		}
		
		var url = "http://"+document.location.hostname+"/Feedback/"+ newHref;/**/		
		goAjax(url, 'GET', callback);
		
		//alert(url);
		return false;
}

function closeUserTab(ctrl){
	
	//remove tab
	jQuery('#feedbackTabbing .tab'+ctrl.id+'user').remove();
        removedClass = 'tab'+ctrl.id+'user';
	
	//go to main tab
	jQuery('.p7TP_tabs .tab1').click();
}

function adjustHeight(){
	var textbox = document.getElementById('feedbackTextArea');
	var maxSize = 8;//number of line breaks allowed
	var textValue = textbox.value;
	//var numBreaks;
	if(textValue.split('\n').length > maxSize){
		textbox.rows = textValue.split('\n').length;//textbox.rows + 1;
	}else{
		textbox.rows = maxSize;
	}
}

//Ajax
function goAjax(url,method,callbackJsFunction){
	var xmlHttp=GetXmlHttpObject()
	if (xmlHttp==null)
	 {
	 alert ("Browser does not support HTTP Request")
	 return
	 }
	url=url+"&sid="+Math.random()
	xmlHttp.onreadystatechange= function() 
	{ 
		if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
	 	{ 
	 		//document.getElementById("txtHint").innerHTML=xmlHttp.responseText
	 		eval(callbackJsFunction); 
	 	} 
	}
	xmlHttp.open(method,url,true)
	xmlHttp.send(null)
}

//Emad Messiha function to prepare Ajax request Object
function GetXmlHttpObject()
{
var xmlHttp=null;
try
 {
 // Firefox, Opera 8.0+, Safari
 xmlHttp=new XMLHttpRequest();
 }
catch (e)
 {
 //Internet Explorer
 try
  {
  xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  }
 catch (e)
  {
  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
 }
return xmlHttp;
}
