// Modal Dialog Box functions
//---------------------------
addAlbumDialog = function addAlbumDialog(link) {
	//	addAlbumDialog.dialog = null; /* To not create a global variable, the object's created as function property */
	// Addition to html document DIV of dialog box container ...
	if(Core.getElementU('add_album_dialog') == null){
		if(!addAlbumDialog.box){ 
			addAlbumDialog.box = document.createElement("div");
			addAlbumDialog.box.setAttribute("id", "add_album_dialog");
			addAlbumDialog.box.setAttribute("style", "display: none;");
		}
		document.getElementsByTagName("body")[0].appendChild(addAlbumDialog.box);
	} // ... eoc

	advAJAX.post({
		cmd : "add_album_to_cart",
		url : ''+document.location+link,
		onLoading: function(obj) {
			var load_str = "<center><img src=http://images.fotki.com/progress.gif> <span class='text2b black'>Loading...</span></center>";
			Core.flushElementCache();
			if(!addAlbumDialog.dialog) {
				addAlbumDialog.dialog = new ModalDialog('add_album_dialog');
			}
         addAlbumDialog.dialog.show();
			addAlbumDialog.dialog.setContent(load_str);
		},
		onSuccess : function(obj) { 
			/* var response = obj.responseText.split("|"); */
			if(addAlbumDialog.dialog != null && obj.responseText != 'error') {
				/* addAlbumDialog.dialog.setWidth(480); */
				addAlbumDialog.dialog.setContent(obj.responseText);
			} else {
			var err_tpl = "<span class='text3'>You cannot add this album to the shopping cart.</span><br><br><div align='right'><button onclick='javascript:closeAddAlbumDialog();'>Close</button></div>";         
			addAlbumDialog.dialog.setContent(err_tpl);
			//	alert('System error. Please reload this page (<F5>).');
			}
		},
		onError : function(obj) {
			alert('System error. Please reload this page (<F5>).');
		}
	});
}

closeAddAlbumDialog = function closeAddAlbumDialog (action) { 
	if(addAlbumDialog.dialog != null) {
		addAlbumDialog.dialog.hide();
		switch(action) {
			case 'gotoalbum':
				_setPhotoQuantity();
				_setAllPrintOrders();
				break;
		
			default:
				_setPhotoQuantity();
				break;
		};
		AddAlbum.descructor();
	}
}

function _setAllPrintOrders(type) {
	var OrderedPrint = "http://images.fotki.com/order_print_new-1.gif";
	var notOrderedPrint = "http://images.fotki.com/pixel.gif";
	type = type ? type : 'photo_print';

	try {
		if(page.photos) {
			for(var idPhoto in page.photos) {
				page.photos[idPhoto].types[type] = 1;
            page.photos[idPhoto].is_checked_at_page = 1;
				var obj = document.getElementsByName(type+idPhoto)[0];
				if(obj) {
					obj.src = OrderedPrint;
				}
			}
		}
	}
	catch (ex) {	
		return;
	} 
}

function _getOrderedPhotoCount(type){
	type = type ? type : 'photo_print';
	var count = 0;

	try {	
		if(page) {
			for(var idPhoto in page.photos) {
				if(document.getElementsByName(type+idPhoto)[0] && page.photos[idPhoto].types[type] == 1){
					count++;
				}
			}
		}
	}
	catch (ex) {
		return 0;
	}	
	
	return count;	
}	

function _setPhotoQuantity () {
	try {
		if(page) {
			for(var idPhoto in page.photos) { 
				if(page.photos[idPhoto]){ 
					var q = parseInt(page.photos[idPhoto].quantity);
					var v = parseInt(AddAlbum.value["factor"]);  
					page.photos[idPhoto].quantity = (page.photos[idPhoto].is_checked_at_page ? q : v); 
				}
			}
		}
	}
   catch (ex) { 
      return 0;
   }
}
// Extra functions
//----------------
addAlbumToCart = function addAlbumToCart(path, el_name, form_name, to_back){ 
	form_name = form_name ? form_name : "add_album";
	el_name = el_name ? el_name : "clear"; 

	var form = Core.getElementU(form_name);
	var radio_el; 
	var pr_format = pr_paper = "";
	var btn_1, btn_2;	
	for(var i = 0; i < form.elements.length; i++) {
		radio_el = form.elements[i];
		if(radio_el.name == "format" && radio_el.checked == true) {
         pr_format = radio_el.value; 
      } else if(radio_el.name == "paper" && radio_el.checked == true) {
			pr_paper = radio_el.value; 
		}
		if(pr_format && pr_paper) break;
	} 

	advAJAX.post({
		cmd		: "addalbum",
		url		: path,
		f_back	: (to_back ? '1' : '0'),
		clear		: (Core.getElementU(el_name).checked == true ? "1" : "0"),
		format	: pr_format || "size4x6_1",
		paper		: pr_paper || "glossy",
		timeout : (1000 * 30),
		onTimeout : function () { 
			//Core.setText("addalbum_progress", "");
         addAlbumDialog.dialog.setContent2("addalbum_progress", "");
			alert("Connection timed out. Pleace try again later.");
			if (btn_1 = Core.getElementU("addandgotocart_button")) btn_1.disabled = false;
			if (btn_2 = Core.getElementU("addandgotoalbum_button")) btn_2.disabled = false; 
			closeAddAlbumDialog('gotoalbum');
		},	 
		onLoading : function(obj){
			//Core.setText("addalbum_progress", "<img src=http://images.fotki.com/progress.gif>");
         addAlbumDialog.dialog.setContent2("addalbum_progress", "<img src=http://images.fotki.com/progress.gif>");
			if (btn_1 = Core.getElementU("addandgotocart_button")) btn_1.disabled = true;
			if (btn_2 = Core.getElementU("addandgotoalbum_button")) btn_2.disabled = true;
		},
		onSuccess : function(obj){
			var response = obj.responseText.split("|");
			//Core.setText("addalbum_progress", "");
         addAlbumDialog.dialog.setContent2("addalbum_progress", "");
         
			if (btn_1 = Core.getElementU("addandgotocart_button")) btn_1.disabled = false;
			if (btn_2 = Core.getElementU("addandgotoalbum_button")) btn_2.disabled = false; 
			if (response[0] == "ok") {
				try {
					if(to_back) {
               	CHint.setQuantity(response[1]);
						closeAddAlbumDialog('gotoalbum');
					} else {
						document.location = response[1];
						Core.flushElementCache();
						var load_str = "<center><img src=http://images.fotki.com/progress.gif> <span class='text2b black'>Loading...</span></center>";
						addAlbumDialog.dialog.setContent(load_str);
						Core.addEvent(window, 'unload', closeAddAlbumDialog);
					} 
				} catch (ex) {
               try {
                  closeAddAlbumDialog('gotoalbum');
               } catch(ex) {
   					return;
               }
				}
			} else {         
         	alert('System error.');
				closeAddAlbumDialog();
			}
			return true;
		},
		onError : function(obj) {
			if (btn_1 = Core.getElementU("addandgotocart_button")) btn_1.disabled = false;
			if (btn_2 = Core.getElementU("addandgotoalbum_button")) btn_2.disabled = false;
	
			//Core.setText("addalbum_progress", "");
         addAlbumDialog.dialog.setContent2("addalbum_progress", "");
			alert('System error. Please reload this page (<F5>).');
		}
	});
}

function _clearChecked(e) {
	if (e != null) {
		var el = (typeof(e) == 'object') ? e : Core.getElementU(e);
	}
	
	if(typeof(e) == 'object') {
		if(el.checked) {
			Core.hideElement('cartinfo');
			Core.hideElement('totalinfo');
		} else {
			Core.showElement('cartinfo');
			Core.showElement('totalinfo');
		}
	} else {
		if(el.checked) {
			el.checked = false;
			Core.showElement('cartinfo');
			Core.showElement('totalinfo');
		} else {
			el.checked = true;
			Core.hideElement('cartinfo');
			Core.hideElement('totalinfo');
		}
	}
}

// Code of the price calculation;
// require global obj of the price 
// (default: price_simple on view_folder ... .tpl)
//------------------------------------------------  
AddAlbum = function(){}

AddAlbum.init_data = null;
AddAlbum.value = { "format":"size4x6_glossy", "paper":"glossy", "factor":1 };
AddAlbum.price = null; 

AddAlbum.descructor = function () {
	AddAlbum.init_data = null;
	AddAlbum.value = { "format":"size4x6_glossy", "paper":"glossy", "factor":1 };      
	AddAlbum.price = null;
}

AddAlbum.calc = function(el, price){
	if(AddAlbum.price == null) {
		if(!price || price == null){
			AddAlbum.price = { "size4x5_glossy":0.09, "size4x5_matte":0.09, "size4x6_glossy":0.09, "size4x6_matte":0.09, "size5x7_glossy":0.40, "size5x7_matte":0.40, "size8x10_glossy":1.50, "size8x10_matte":1.50, "size3x5_glossy":0.09, "size3x5_matte":0.09 };
		} else {
			AddAlbum.price = price;
		}
	} 
	if(AddAlbum.value == null) {
		AddAlbum.value = { "format":"size4x6_glossy", "paper":"glossy", "factor":1 };
	}
	if(AddAlbum.init_data == null) {
		var data = new Object();
		data["cartquantity"] = Core.getText("cartquantity");
		data["albumquantity"] = Core.getText("albumquantity");
		data["cartsum"] = Core.getText("cartsum");
		if(data["cartsum"].indexOf("$") != -1) {
			data["cartsum"] = data["cartsum"].substr(data["cartsum"].indexOf("$")+1);
		}
//		data["albumsum"] = Core.getText("albumsum");    
//		if(data["albumsum"].indexOf("$") != -1) {
//			data["albumsum"] = data["albumsum"].substr(data["albumsum"].indexOf("$")+1);
//		}
		AddAlbum.init_data = data;
	} // end of init

	if(el.name == "format") {
		var mass = el.value.split("_");
		AddAlbum.value["format"] = mass[0]+"_"+AddAlbum.value["paper"];
		AddAlbum.value["factor"] = mass[1];
	} else if(el.name == "paper") {
		var mass = AddAlbum.value["format"].split("_");
		AddAlbum.value["paper"] = el.value;
		AddAlbum.value["format"] = mass[0]+"_"+el.value;
	}
	var album_quantity = AddAlbum.value["factor"] * AddAlbum.init_data["albumquantity"];
	var total_quantity = album_quantity*1 + AddAlbum.init_data["cartquantity"]*1;
	var album_sum = album_quantity * AddAlbum.price[AddAlbum.value["format"]];
	var total_sum = album_sum*1 + AddAlbum.init_data["cartsum"]*1;
  
	Core.setText("albumquantity", album_quantity);
	Core.setText("totalquantity", total_quantity);
	Core.setText("albumsum", "$"+Core.formatMoney(album_sum));
	Core.setText("totalsum", "$"+Core.formatMoney(total_sum));  
}

