// ajax setup

var xmlHttp = false;
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
try {
  xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
  try {
    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  } catch (e2) {
    xmlHttp = false;
  }
}
@end @*/

if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
  xmlHttp = new XMLHttpRequest();
}

/*
function sendUpdate(updatedElement){
	new Ajax.Request("/my/action/url.php", {
		method:"post", parameters:Sortable.serialize(updatedElement.id)
	})
}
*/

//ajax calls

//get state field by country selection
function show_state_field() {
 	if (xmlHttp.readyState == 4) {
	    var response = xmlHttp.responseText;
		document.getElementById('state').innerHTML = response;
	}
}

function get_state_field_by_country(obj_or_num, state_id, user_id){
	obj_or_num = obj_or_num == 'undefined' ? -1 : obj_or_num;
	var country_id = typeof(obj_or_num) == 'object' ? obj_or_num.value : obj_or_num;
	//var state_id = state_id;
	var url = "/_process-country-selection.php?country_id=" + escape(country_id) +"&state_id="+ escape(state_id) +"&user_id="+ escape(user_id);
	
	// Open a connection to the server
	xmlHttp.open("GET", url, true);
	
	// Setup a function for the server to run when it's done
	xmlHttp.onreadystatechange = show_state_field;
	
	// Send the request
	xmlHttp.send(null);
}

//get homepage video description
function show_video_description() {
 	if (xmlHttp.readyState == 4) {
	    var response = xmlHttp.responseText;
		document.getElementById('playing').innerHTML = response;
	}
}

function get_homepage_video_description(asset_id){
	var url = "/_process-video-selection.php?asset_id=" + escape(asset_id);
	
	// Open a connection to the server
	xmlHttp.open("GET", url, true);
	
	// Setup a function for the server to run when it's done
	xmlHttp.onreadystatechange = show_video_description;
	
	// Send the request
	xmlHttp.send(null);
}

//filter press list
function filter_press(field, access){
	var page = access == 2 ? '/press/index.php' : '/press.php';
	if (field.value != '') location.href = page +"?filter="+ field.value;
}

//filter media list by category
function filter_media_category(obj){
	if (obj.value == 0){
		location.href = "index.php";
	}
	else if (obj.value.indexOf('|') != -1){
		var pieces = obj.value.split('|');
		var type = pieces[0];
		var id = pieces[1];
		var parent_category = pieces[2];
		var other_filter = pieces[3];
		location.href = "index.php?"+ type +"="+ id + "&p="+ parent_category + other_filter;
	}
	else{
		location.href = "index.php?"+ obj.value;
	}
}

//filter media type
function filter_media_display(obj){
	location.href = "index.php?"+ obj.value;
}

//validate email address
function is_valid_email(email){
	var reg = /^[A-z0-9-+.]+@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
	if (reg.test(email)) return true;
	else return false;
}

//validate form fields
function validate(action, form, page){
	var errors = '';
	if (page == 'user'){
		if (form.first_name.value == '') errors += "- First Name\n";
		if (form.last_name.value == '') errors += "- Last Name\n";
		if (form.email){
			if (form.email.value == '') errors += "- Email\n";
			else if (!is_valid_email(form.email.value)) errors += "- Valid Email\n";
		}
		if (form.password.value == '') errors += "- Password\n";
		else if (form.password.value != form.password_confirm.value) errors += "- Passwords do not match\n";
		if (form.company_name.value == '') errors += "- Company Name\n";
		if (form.job_title.value == '') errors += "- Job Title\n";
		if (form.address1.value == '') errors += "- Address\n";
		if (form.city.value == '') errors += "- City\n";
		if (form.state_province && form.state_province.value == '') errors += "- State/Province\n";
		else if (form.state_id && form.state_id.value == 0) errors += "- State\n";
		if (form.zip_postal.value == '') errors += "- Zip/Postal Code\n";
		if (form.country_id.value == 0) errors += "- Country\n";
		if (form.site_use_detail.value == '') errors += "- How will you be using downloaded assets?\n";
		if (form.email){
			var confirm_text = "Please make sure your email is correct.\n\n";
			confirm_text += "Is \""+ form.email.value +"\" correct?";
		}
	}
	else if (page == 'user_terms'){
		if (!form.accept_terms.checked) errors += "- Terms and conditions must be accepted\n";
	}
	else if (page == 'main101'){
		if (form.photo.value == '' && form.photo_existing.value == '' && form.previous_photo.value == '') errors += "- Photo\n";
		if (form.body.value == '') errors += "- Body\n";
	}
	else if (page == 'asset_file'){
		var fields = new Array('preview_file', 'high_quality_file', 'low_quality_file');
		var count_duplicates = 0;
		for (f = 0; f<fields.length; f++){
			if (form[fields[f]].value != '' && form[fields[f]].value != 0){
				for (v = 0; v<fields.length; v++){
					if (fields[f] != fields[v] && form[fields[f]].value == form[fields[v]].value){
						count_duplicates++;
					}
				}
			}
		}
		if (count_duplicates > 0) errors += "- Files can be used once only\n";
	}
	
	if (errors != ''){
		error_str = "The following fields are required:\n\n"+ errors;
		alert(error_str);
		return false;
	}
	else{
		if (confirm_text && action == 'add'){
			confirm_text += "\n\nClick OK to continue or CANCEL to change";
			var confirm_short_name = confirm(confirm_text)
			if (confirm_short_name){
				return true;
			}
			else{
				return false;
			}
		}
		else{
			return true;
		}
	}
}

//check all checkboxes in group
function checkAll(group, allbox) {
	for (i = 0; i < group.length; i++) group[i].checked = allbox.checked ? true : false;
}

//disable file fields
function disable_file_field(field_name, disable){
	var field = document.forms[0][field_name];
	if (disable || !field.disabled){
		field.value = '';
		field.disabled = true;
	}
	else{
		field.disabled = false;
	}
}

//hide div
function hide_div(div_id, hide){
	var div = document.getElementById(div_id);
	if (hide || div.style.display == ''){
		div.style.display = 'none';
	}
	else{
		div.style.display = '';
	}
}

//pop
function popup(url, w, h){
	var win = window.open(url,"popwin","height=" + h + ",width=" + w + ", resizable=no, status=no, scrollbars=no, location=no, menubar=no, toolbar=no");
}

//maximize window
function maximize_window(){
	var min_height = 900;
	//alert('screen: '+ screen.height +', window: '+ document.body.clientHeight);
	if (screen.height < min_height || document.body.clientHeight < min_height){
		if (window.resizeTo && (screen.availWidth || screen.width)){
			window.resizeTo((screen.availWidth || screen.width),(screen.availHeight || screen.height));
		}
		else if (window.outerWidth && (screen.availWidth || screen.width)){
			window.outerWidth = screen.availWidth || screen.width;
			window.outerHeight = screen.availHeight || screen.height;
		}
		if (window.moveTo) window.moveTo(0,0);
		else if (window.screenX){
			window.screenX = 0;
			window.screenY = 0;
		}
	}
}

//play homepage video and load description
function play_video(asset_id, video, poster){
	get_homepage_video_description(asset_id);
	//alert(video);
	if ($('dtvplayer')) $('dtvplayer').playVideo(video, poster); //if the user has flash, load the video
}

function play_default_video(){
	//this is for a crashing bug in IE... you can't write anything to the page that is inside another element until the page is loaded
	//http://askville.amazon.com/SimilarQuestions.do?req=solution-Operation-Aborted-error
	//so.write('video_player'); //got around this by adding defer="defer" in the script tag
}

function disableReturnKey(evt) {
  var evt = (evt) ? evt : ((event) ? event : null);
  var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
  if ((evt.keyCode == 13) && ((node.type=="text") || (node.type=="password")))  {return false;}
}
