/**
 * @author Karthik
 */
/**
 * Checks the given param is id or the element and Clears the text box.
 * @param Object/String id
 */
function clearTextBox(id) {
	var txtBox = (id && typeof id == 'string') ? document.getElementById(id) : id;
	if (txtBox && txtBox['value']) {
		txtBox.value = "";
	}
}
/**
 * Clears the Organization Text box.
 * @param Object/String orgId
 */
function clearOrg(orgId, orgName) {
	clearTextBox(orgId);
	clearTextBox(orgName);
	$('div.jsonSuggestResults').html('').hide();
}

function generateSearchOrganization() {
	var url = "../organization/search-organization";
	$('#organizationSearchContainer').load(url, null, function() {

			$('#organizationSearchContainer').modal( {
				close : false,
				containerCss:{
							backgroundColor:"transparent",
							borderColor:"transparent",
							height:0,
							padding:0,
							width:0
						},
				position : [ "10%", "20%" ]
			});     
			//$('#scroll').jScrollPane();
		}
	);
}

function cancelUploadImage() {
	$('#uploadImage').hide();
	$('#photo').val('');
	$('#profile_image').show();
	$('#btn_change_profile_photo').show();
}

function uploadProfileImage() {
	$('#uploadImage').show();
	$('#profile_image').hide();
	$('#btn_change_profile_photo').hide();
	/*
	var url = "../profile/upload-image";
	var user_id = $('#id').val();
	$('#uploadImage').load(url, {user_id: user_id}, function() {
			$('#uploadImage').modal({
				close : false,
				containerCss:{
							backgroundColor:"transparent",
							borderColor:"transparent",
							height:0,
							padding:0,
							width:0
						},
				position : [ "30%", "20%" ]
			});
		}
	);
	*/
}

function searchOrganization() {
	var url = "../organization/search-result-organization";
	var org_name = document.getElementById('search_org_name');
	if (org_name.value == "") {
		$('#org-search-user-msg').addClass('custom_error');
		$('#org-search-user-msg').html('Please give some name for searching.');
		return;
	}
	if (!isValidSearchText(org_name.value)) {
		$('#org-search-user-msg').addClass('custom_error');
		$('#org-search-user-msg').html('Please give some name for searching not special character.');
		return;
	}
	var param = {name:org_name.value};
	$('#search-organizations')[0].style.display = "";
	$('#add-organizations')[0].style.display = "none";	
	$.post( url, 
			param,
			function (responseText){
				//var searchResultList = document.getElementById('search_result_org');
				$('#org-search-user-msg').removeClass('custom_error');
				$('#search_result_org').show();
				$('#search_result_org').html(" ");
				$('#add_org_td').hide();
				
				var result_table = $('#search_result_org');
				var should_add = 1;				
				if(responseText.length){
				 $.each(responseText, function(i) {
					var row = responseText[i] ;
					var org_name = row.text;
					var org_id = row.id;
					var result_table_row = $('<tr></tr>').attr('onClick',"selectOrganization('"+org_id+"','"+org_name+"')");					
					var str_row = $("<td></td>").html(row.text);
					result_table_row.append(str_row);
					str_row = $("<td></td>").html(row.website);
					result_table_row.append(str_row)
					if(row.text.toLowerCase() == $('#search_org_name').val().toLowerCase()){
							result_table.prepend(result_table_row);
							should_add = 0;
						}else{
							result_table.append(result_table_row);
						}
					});				
					str_row = $('<tr><td class="graytitlebar">Name</td>' +
							   '<td class="graytitlebar">Website</td></tr>');
					result_table.prepend(str_row);
				}else{
					var result_table_row = $('<tr><td >The organization you searched is not available in our database, Please click on Add to enroll it.' +
											'</td></tr>');
					result_table.append(result_table_row);
				}
				
				if(should_add == 1){
					$('#add_org_td').show();
				}
				
				$('#org-search-user-msg').html(' ');
			},
			"json");
}

function selectOrganization(id, name) {
	var org_name = $('#organization');
	var org_id = $('#organization_id');
	if (org_name.length > 0)
		org_name[0].value = name;
	if (org_id.length > 0)
		org_id[0].value = id;
	$.modal.close();
}

function enableAddOrganization() {
		$('#search-organizations').hide();
		$('#add-organizations').show();
		$('#org_name').val( $('#search_org_name').val());
}

function enableSearchOrganization(){
		$('#search-organizations').show();
		$('#add-organizations').hide();
		$('#org_name').val( $('#search_org_name').val());
}

function addOrganization() {
	if($('#org_name').val == ""){
		$('#org_name').val( $('#search_org_name').val());
	}
	var org_name;
	var org_website;
	org_name = $('#org_name');
	org_website = $('#org_website');
	if  (org_name.val() == "") {
		$('#org_name_error').html('Organization Name is not provided.');
		return;
	}else if(!/^[a-zA-Z 0-9]+$/.test(org_name.val())) {
		$('#org_name_error').html('Organization Name should not have any special character.');	
		return;	
	}
	
	if (org_website.val() != "") {
		if (isValidUrl(org_website.val())) {
			$('#org_website_error').html('Website you have provided is not valid.');
			return;
		}
	}
	$('#org_name_error').html(" ");
	$('#org_website_error').html(" ");
	var param = {org_name: org_name.val(),
				 org_website: org_website.val()};
	var url = '../organization/save-organization';
	$.ajax({type:'POST',
			url:url,
			data:param,
			dataType:'json',
			success:function(responseText){
				//var result = eval(responseText);
				if (responseText.result == 'success') {
					var org_name = $('#organization');
					var org_id = $('#organization_id');
					org_name.val(responseText.org_name);
					org_id.val(responseText.org_id);
					$.modal.close();
					$('#organization_error').show();
					$('#organization_error').html(responseText.succMsg);
					return;
				}
				if (typeof responseText == 'object' && responseText.result == 'error') {
					$('#org-user-mgs').html(responseText.errorMsg);
				}
			}
	});
	//$.post(url, param, dataType:”json”, );
}



function addOrganizationAdmin(org_id) {
	$('#org-user-mgs').html("");
	var org_name;
	var org_website;
	org_name = $('#org_name');
	org_name = org_name.length > 0 ? org_name[0] : null;
	org_website = $('#org_website');
	org_website = org_website.length > 0 ? org_website[0] : null;
	
	if (org_website == null)
		return;
	if (org_website == null)
		return;
	var errorMsg = org_name.value == "" ? "Organization Name is not provided." : "";
	
	if(!/^[a-zA-Z 0-9]+$/.test(org_name.value)){
		errorMsg = "Organization Name should not have any special character.";
	}
	
	if  (errorMsg != "") {
		$('#org_name_error').html(errorMsg);
		return;
	}
	
	
	if (typeof (org_id)!=undefined && org_id != "") {
			var param = {
									id: org_id,
									org_name: org_name.value,
									org_website: org_website.value
									};
	}else{
			var param = {
									org_name: org_name.value,
									org_website: org_website.value
									};
	}
	var url = '../organization/save-organization';
	$.ajax({type:'POST',
			url:url,
			data:param,
			dataType:'json',
			success:function(responseText){
				$('#org_name_error').html("&nbsp;");
				//var result = eval(responseText);
				if (responseText.result == 'success') {
					$('#org-user-mgs').html(responseText.succMsg);
					return;
				}
				if (typeof responseText == 'object' && responseText.result == 'error') {
					$('#org-user-mgs').html(responseText.errorMsg);
				}
			}
	});
	//$.post(url, param, dataType:”json”, );
}

function activateCode(){
	i = $('#invitation_code').val();
	
	if ( i != "") {
		$('#invitation_code_error').html(' ');
		var params = "invite_id=" + i;
		$.ajax({
			type: "GET",
			url: base_url + "activate/check-invitation",
			data: params,
			success: function(msg){
				var response = (eval("(" + msg + ")"));
				if (response.error == 0) {
					var redirect_url = base_url + "cart?" + params;
					window.location = redirect_url;
				}
				else {
					$('#invitation_code_error').html(response.message);
				}
			}
		});
	}else{
		$('#invitation_code_error').html('Please Enter Invitation / Group Code');
	}
}


function enterIntoHighrise(user_id){
	/**
	 * @TODO Have to do the Ajax call for highrise entry 
	 * Also need to display loading image and error controll etc.....
	 */
	
}

/**
 * 
 * @param {String} url  				- Action user to which the request has to be send.
 * @param {string} str_query		- Query Data to be send as request.
 * @param {string} selectEleId		- ID of the <select> element 
 * @param {string} defaultOpt		- The default option that has to be selected at initial.
 */
function generateOptionOnAjax (url, str_query, selectEleId, defaultOpt) {
	$('#modalBox').html('<div class="loader" id="loader">'
											+'<div class="loaderanim"></div>'
											+'<div class="loadermid"> '
											+'<div class="titletextloading">Loading.. Please Wait!</div>'
											+'</div>'												
											+'<div class="loaderright"></div>'
											+'</div>'
											);
	$('#loader').modal({close: false ,position: ["10%","40%"]}) ;
	
	$("select#" + selectEleId).html('');
	defaultOpt = $.extend({'value' : '', 'label' : ''}, defaultOpt);
	var options = '<option value="' + defaultOpt.value + '">' + defaultOpt.label + '</option>';
	$("select#" + selectEleId).html(options);
	$.ajax({
			 	type: "GET",
			 	url: url,
				data:str_query,
				dataType : 'json',
			 	success: function(response){
					response = response == null ? {} : response;
					for (var i = 0; i < response.length; i++) {
						var str_extra_attr = "";
						if(response[i].can_show_report != undefined){
							str_extra_attr = ' allow_report = "'+response[i].can_show_report+'"'; 	
						}
						
						if(response[i].show_debrief != undefined){
							str_extra_attr = ' show_debrief = "'+response[i].show_debrief+'"';
						} 
						options += '<option value="' + response[i].value + '" id="'+selectEleId+'_'+response[i].value+'"'+str_extra_attr+'>' + response[i].label + '</option>';
		  			}
					$("select#" + selectEleId).html(options);
					$.modal.close();
			 	}
			 });	
}
/**
* @param {String} url	 	 The URL of the page to open in the new window.
* @param {String} name		 A name to be given to the new window. 
* @param {Object} options  	 Object contains all attributes for opening the window.
 */
function openPopupWindow(url, name, options){
	if (typeof options != 'object') {
		window.open(url,name);	
	 return;
	}
	var attr = "";
	for (key in options) {
		var value = options[key];
		attr += key + (value != "" ? (" = " + value) : "") + ", ";
	} 
	window.open(url,name,attr); 
}


function selectCountry(id, name) {
	var country_name = $('#country');
	var country_id = $('#country_id');
	if (country_name.length > 0)
		country_name[0].value = name;
	if (country_id.length > 0)
		country_id[0].value = id;
	$.modal.close();
}

function generateSearchCountry() {
	var url = "../../index/get-country-names";
	$('#countrySearchContainer').load(url, null, function() {
			$('#countrySearchContainer').modal( {
				close : false,
				containerCss:{
							backgroundColor:"transparent",
							borderColor:"transparent",
							height:0,
							padding:0,
							width:0
						},
				position : [ "10%", "20%" ]
			});     
			//$('#scroll').jScrollPane();
		}
	);
}

function searchCountry() {
	var url = "../../index/get-country-names?format=htmlsearch";
	var country_name = document.getElementById('search_country_name');
	if (country_name.value == "") {
		$('#country-search-user-msg').addClass('custom_error');
		$('#country-search-user-msg').html('Please give some name for searching.');
		return;
	}
	if (!isValidSearchText(country_name.value)) {
		$('#country-search-user-msg').addClass('custom_error');
		$('#country-search-user-msg').html('Please give some name for searching not special character.');
		return;
	}
	var param = {name:country_name.value};
	$('#search-countries')[0].style.display = "";
	$.post( url, 
			param,
			function (responseText){
				//var searchResultList = document.getElementById('search_result_org');
				$('#search_result_country').show();
				$('#search_result_country').html(" ");
				$('#search_result_country').html(responseText);
				$('#country-search-user-msg').removeClass('custom_error');
				$('#country-search-user-msg').html(' ');
			});
}
function generateSearchSimulation() {
	var url = "../../simulation/search-group-simulation";
	$('#simulationSearchContainer').load(url, null, function() {

			$('#simulationSearchContainer').modal( {
				close : false,
				containerCss:{
							backgroundColor:"transparent",
							borderColor:"transparent",
							height:0,
							padding:0,
							width:0
						},
				position : [ "10%", "20%" ]
			});     
			//$('#scroll').jScrollPane();
		}
	);
}
function searchsimulation() {
	var url = "../../index/get-simulation-names?format=htmlsearch";
	var org_name = document.getElementById('search_sim_name');
	if (org_name.value == "") {
		$('#sim-search-user-msg').addClass('custom_error');
		$('#sim-search-user-msg').html('Please give some name for searching.');
		return;
	}
	if (!isValidSearchText(org_name.value)) {
		$('#sim-search-user-msg').addClass('custom_error');
		$('#sim-search-user-msg').html('Please give some name for searching not special character.');
		return;
	}
	//var param = {name:org_name.value};
	url = url + "&name="+org_name.value;
	$('#search-simulations')[0].style.display = "";
	$('#add-simulations')[0].style.display = "none";
	$.post( url,'',
			function (responseText){
				//var searchResultList = document.getElementById('search_result_org');
				$('#search_result_sim').show();
				$('#search_result_sim').html(" ");
				$('#search_result_sim').html(responseText);
				$('#sim-search-user-msg').removeClass('custom_error');
				$('#sim-search-user-msg').html(' ');
			});
}

function selectSimulation(id, name) {
	var org_name = $('#simulation');
	var org_id = $('#simulation_id');
	if (org_name.length > 0)
		org_name[0].value = name;
	if (org_id.length > 0)
		org_id[0].value = id;
	$.modal.close();
}

