var maxLevels = 3;
var scriptPath = "/";
var scriptExtension = "/";

var imagesCount = 1;
var imagesQty = 0;
var maxImages = 4;

$(document).ready(function() {
	if ( typeof($("#chainSelectDivId").val()) != 'undefined' ) {
		var selectionName = $("#chainSelectDivId").val();
		var script = scriptPath+selectionName+scriptExtension;
		if ( selectionName == 'select-location-by-zip-ajax' ) {
			lookupZipCode(selectionName);
		}
		else{
			selectorReload(selectionName);
		}
	}
});

function selectorReload(selectionName, invokedLevs, curSelection)
{
	$(selectionDivId + " #selector").hide();
	$(selectionDivId + " #selector_load_progress").show();


	var selectionDivId = "#"+selectionName;
	var script = scriptPath+selectionName+scriptExtension;
	var lev = new Array();
	var completed = false;
	var levsData = "";

	if (typeof(curSelection) == 'undefined') {
		curSelection = $(selectionDivId + " #selector").val();
	}

	for (i=0; i<=maxLevels; i++) {
		if (completed) {
			lev[i] = "";
		}
		else {
			var curLevel;
			if (typeof(invokedLevs) == 'undefined') {
				curLevel = $(selectionDivId + " #lev"+i).val();
			}
			else {
				curLevel = invokedLevs[i];
			}
			if (typeof(curLevel) == 'undefined') {
				lev[i] = curSelection;
				completed = true;
			}
			else {
				lev[i] = curLevel;
			}
		}
		if ( lev[i] ) {
			levsData += "&lev"+i+"="+lev[i];
		}
	}

	$.ajax({
	  type: "POST",
	  url: script,
	  data: "selection_id="+curSelection+levsData,
	  beforeSend: function() {
			$(selectionDivId + " #selector_load_progress").show();
	  },
	  success: function(html){
	    $(selectionDivId).html(html);
		$(selectionDivId + " #selector").change(function() {
			selectorReload(selectionName);
		});
	  }
	});
}

function lookupZipCode(selectionName, doChange)
{
	var selectionDivId = "#"+selectionName;
	var script = scriptPath+selectionName+scriptExtension;
	var zip_code = $("#custom_zip_code").val();

	if (typeof(zip_code) == 'undefined' || doChange == 1) {
		zip_code = '';
		var submited_query = "&submited=false"; 
	}
	else {
		var submited_query = "&submited=true";
	}

	$.ajax({
	  type: "POST",
	  url: script,
	  data: "custom_zip_code="+zip_code+submited_query,
	  async: false,
	  beforeSend: function() {
			$(selectionDivId + " #selector_load_progress").show();
	  },
	  success: function(html){
	    $(selectionDivId).html(html);
		}
	});
}

function getBack(selectionName, lev)
{
	var selectionDivId = "#"+selectionName;
	var invokedLevs = new Array();
	for (i=0; i<=maxLevels; i++) {
		if (i<lev) { invokedLevs[i] = $(selectionDivId + " #lev"+i).val(); }
		else { invokedLevs[i] = ""; }
	}
	curSelection = lev != 0 ? invokedLevs[lev-1] : 0;
	selectorReload(selectionName, invokedLevs, curSelection);
}

function dependedSelectionReload(field, parentValue)
{
	if (parentValue) {
		$.ajax({
			type: "GET",
			dataType: "json",
			url: "/depended_field_ajax/" + field + "/" + parentValue + scriptExtension,
			beforeSend: function(){
				$("#" + field).hide();
				$("#" + field + "_load_process").css("display", "block");
				$("#" + field + " > option:not(:first)").remove();
			},
			success: function(data){
				$.each(data, function(i, option){
					$("#" + field).append('<option value="' + option.id + '">' + option.name + '</option>');
					$("#" + field + "_load_process").hide();
					$("#" + field).show();
				})
			}
		});
	}
	else {
		$("#" + field + " > option:not(:first)").remove();
	}
}

function fetchImage(number, url, fileName)
{
	if ( typeof($("#uimage"+number+" > span > img").attr("src")) != 'undefined' ) {
		$("#uimage"+number+" > input").val(fileName);
		$("#uimage"+number+" > span > img").attr("src", url+'?'+Math.random());
		imagesCount++;
	}
	else if (imagesQty < maxImages) {
		$("#uimages").append(
					'<span id="uimage'+number+'" class="userImage">\
						<input type="hidden" name="imageFiles[]" value="'+fileName+'">\
						<span class="uimageContainer"><img src="'+url+'" class="ui" /></span>\
						<span class="uimageActions">\
							<a href="javascript:deleteImage('+number+')"><img src="/images/icons/image_delete.png" /></a> \
							<a href="javascript:uploadImage('+number+')"><img src="/images/icons/image_edit.png" /></a>\
						</span>\
					</span>'
		);
		imagesQty++;
		imagesCount++;
		checkAddLinkVisibility();
	}
}

function deleteImage(number)
{
	$("#uimage"+number).remove();
	imagesQty--;
	checkAddLinkVisibility();
}

function uploadImage(num)
{
	var uniqid = $("#tmpId").val();
	if ( typeof(num) == 'undefined' ) {
		num = imagesCount;
	}
	showDialog(mainHostUrl+'/fileupload/'+uniqid+'/'+num+'/', 500, 300);
}

var dialogWindow;
function showDialog(url,w,h,sb)
{
	if ( dialogWindow && !dialogWindow.closed ) {
		dialogWindow.focus();
	}
	else {
		sb=(sb)?"yes":"no";
		lp = (screen.width) ? (screen.width-w)/2 - 100 : 0;
		tp = (screen.height) ? (screen.height-h)/2 - 50 : 0;
		dialogWindow=window.open(url,'_blank','width='+w+',height='+h+',resizable=no,top='+tp+',left='+lp+',scrollbars='+sb+',status=no');
		setTimeout("dialogWindow.focus()",1000);
	}
}

function checkAddLinkVisibility()
{
	if (imagesQty >= maxImages) {
		$("#addImageLink").css("display", "none");
	}
	else {
		$("#addImageLink").css("display", "inline");
	}
}



