// JavaScript Document

function initImgUpldrs(tip,disable){
	$(".imgUpldr.md"+delim+"EDIT",tip).each(function(e){ initImgUpldr(this,disable); });
	var action='init';
	if(disable) action='disable';
	$(".image-uploader.md"+delim+"EDIT",tip).imageUploader(action);
	
	$("div.img:has(img.htv),.imgUpldr:has(img.htv)",tip).each(function(e){ 
		var id = _val($(this).find("img.htv"),"htvid");  
		if(id){
			//alert("found one: "+id);
			var img = $(this).find("img:first");
			var lrgimg = $("#"+id);
			if(img.size() && lrgimg.size()){
				var mysz  = _imgsrcsz(img);
				var lrgsz = _imgsrcsz(lrgimg);
				
				var lrgsrc = img.attr("src").replace(mysz+"/",lrgsz+"/").replace(mysz+"_",lrgsz+"_");
				var temp = new Image();
				temp.src = lrgsrc;
				//$("body").append("<Br>"+lrgsrc+"<br><img src='"+lrgsrc+"'>");
				$(this).attr({"lrgsrc":lrgsrc});
				//alert($(this).attr("lrgsrc"));
				$(this).click(function(e){
					//alert("got here");
					//alert($(this).attr("lrgsrc"));
					lrgimg.attr({"src":$(this).attr("lrgsrc")});
				});
			}
		}
	}).css({"cursor":"pointer"});
	
	//if(isa('imgUpldr',tip) && _val(tip,"md")=="EDIT") initImgUpldr(tip,disable);
	//$("#"+tip.id+ " *.imgUpldr.md"+delim+"EDIT").each(function(e){ initImgUpldr(this,disable); });
}

function _imgsrcsz(img){
	var size=false;
	if(img.size()){
		var src = img.attr("src");
		//if(!src) alert(img.size());
		var parts = src.split("/");
		var filename = parts.pop();
		var fparts = filename.split("_");
		size = fparts[0];
	}
	//alert(size);
	return size;
}

function loadImgButton(button,tmbsrc,tmbw,tmbh){
	if(!tmbsrc) tmbsrc = _iupPart(button,'tmbsrc');
	if(!tmbw) tmbw = _iupPart(button,'tmbw');
	if(!tmbh) tmbh = _iupPart(button,'tmbh');
	//alert(tmbw);
	button.css({'height':tmbh+'px','width':tmbw+'px','cursor':'pointer',"margin":"0","padding":"0"})
		//.parent().css({"border":"1px solid orange",'cursor':'pointer'}).end()
		.children().css({"padding":"0","margin":"0","cursor":"pointer"}).end()
		.find("div.btn_image").css({'height':tmbh+'px','width':tmbw+'px'})
		.children("div.instruct").css({'width':(tmbw-20)+'px','background':'#fff','filter':'alpha(opacity=80)','opacity':0.80,'margin':"5px"}).end();
	//remove = _iupPart(button,"remove");
	//alert('tmbsrc='+tmbsrc+" tmbw="+tmbw+" tmbh="+tmbh);
	if(tmbsrc.length) {
		button.find("div.instruct").text("Click to Replace Image").end()
			.find("div.btn_image").css({"background":"url('"+tmbsrc+"')","background-repeat":"no-repeat"});
		//button.find("div.btn_image").css({'height':tmbh+'px','width':tmbw+'px',"background":"#f00"});
		//if(remove.size()) remove.show();
	} else {
		button.find("div.instruct").text("Click to Upload Image").end()
			.find("div.btn_image").css({"background":"transparent"});
		//if(remove.size()) remove.hide();
	}
	//alert(button.css("height"));
}


function removeImage(button){
	//alert(button.size());
	var iid = _iupPart(button,'iid');
	$('#'+iid).val(0);
	var bid = _iupPart(button,'bid');
	$('#'+bid).val(0);
	
	var ipt_tmbsrc = _iupPart(button,'ipt_tmbsrc');
	ipt_tmbsrc.val('');
	loadImgButton(button,'');
}

function addRemoveImageLink(button){
	var remove = _iupPart(button,'remove');
	if(!remove.size()) {
		button.after("<a href='#' class=removeimage>remove image</a>");
		remove = _iupPart(button,'remove');
	}
	//alert(remove.size());
	remove.click(function(c){
		//c.stopPropagation();
		stopDef(c);
		removeImage($(this).prev());
		});
}

function apcRequest($pb){
	var data= $pb.metadata();
	data.domid= $pb.attr("id");
	$.getJSON("ajax.php?pls=apcinfo",data,apcResponse);
}
function apcResponse(response){
	dump(response);
	var $pb= $("#"+response.domid);
	if(response.apc){
		$pb.progressbar('option','value',0);
	}
}

var intervals= img_btns= new Array(0);
function initImgUpldr(button,disable){
	$(button).unbind("click");
	if(disable) return false;
	
	button = $(button);
	var hldr= _iupPart(button,'hldr');
	var apcid= $(button).attr('id').replace('btn_','pb_');
	//hldr.prepend("<div id=\""+apcid+"\" class=\"apc {uploadid:'123456'}\">apc</div>");
	//addRemoveImageLink(button);
	loadImgButton(button);
	
	new AjaxUpload(button,{
		action: 'ajax.php', 
		name: button.attr('name'),
		responseType: 'json',
		onSubmit : function(file, ext){	 
			//alert(file+" "+ext);
			if (ext && /^(jpg|jpeg)$/.test(ext)){
				var szs  = _iupPart(button,'szs');
				var imageid  = _iupPart(button,'imageid');
				var blokid  = _iupPart(button,'blokid');
				this.setData({
					'APC_UPLOAD_PROGRESS' : '12345678',
					'szs' : szs,
					'imageid' : 0,
					'blokid' : 0,
					'handler' : 'img_uploader'
				});
				this.disable();
				button.addClass("uploading")
					.find(".instruct").css({'background':'transparent','text-align':'center'}).html("<img src='app_images/image-loading.gif'>");
					/*
				var apcdiv  = _iupPart(button,'apc');
				apcdiv.progressbar({
						value:0,
						change: function(e,ui){
							var $pb= $(e.target);
							apcRequest($pb);
							}
						});
			    apcdiv.progressbar('option','value',0);
				*/
				//alert("uploading image");
			} else {
				//alert("Only jpeg images are allowed.  Please select a jpeg and try again.");
				button.find(".instruct").html('<span class=failure>Error: only JPG images are allowed.</span><br>Please try again.<br>Click to select image.');
				return false;				
			}
		},
		onComplete: function(file, response){
			//dump(img_btns);
			dump(response);
			button.removeClass("uploading");
			button.find(".instruct").html("");
			//alert('success='+response.success);
			if(response.success){
				//alert('tmbsrc='+response.tmbsrc);
				this.enable();
				if(response.tmbsrc!=undefined) loadImgButton(button,response.tmbsrc,response.tmbw,response.tmbh);
				button.find(".instruct").html("<span class=success>Success! Image uploaded.</span><br>Click to replace image.<br>NOTE: Changes will not be saved until you click SAVE below.");
				var iid = _iupPart(button,'iid');
				$("#"+iid).val(response.imageid);
				var bid = _iupPart(button,'bid');
				$("#"+bid).val(response.blokid);
				var xbid = "bloks_"+bid;
				$("#"+xbid).val(response.blokid);
				
				// add file to the list
			} else {	
				button.find(".instruct").html("<span class=failure>ERROR!</span><br>"+response.msg);
			}
		}
	});
}
	
	

function _iupPart(button,which){
	button = $(button);
	var hldr = $(button).closest(".img_holder");
	
	var iid = $(button).attr('id').replace('btn_','');
	var imageid= $("#"+iid).val();
	
	var bid = iid.replace('imageid','blokid');
	var blokid= $("#"+bid).val();
	
	switch(which){
		case "hldr":
			return hldr;
		break;
		case "iid":
			return iid;
		break;
		case "imageid":
			return imageid;
		break;
		case "blokid":
			return blokid;
		break;
		case "bid":
			return bid;
		break;
		case "info":
			return $(hldr).children('.info');
		break;
		case "apc":
			return $(hldr).children('.apc');
		break;
		case "remove":
			return $(button).next().filter('.removeimage');
		break;
		case "fles":
			return $(hldr).children('.files');
		break;
		case "szs":
			var szs= $(hldr).children('.szs').val();
			return escape(szs);
		break;
		case "tmbw":
			return $(hldr).children('.tmbw').val();
		break;
		case "tmbh":
			return $(hldr).children('.tmbh').val();
		break;
		case "tmbsrc":
			var tmbsrc= $(hldr).children('.tmbsrc').val();
			if(tmbsrc.length) return tmbsrc;
		break;
		case "ipt_tmbsrc":
			var ipt_tmbsrc= $(hldr).children('.tmbsrc');
			if(ipt_tmbsrc.size()) return ipt_tmbsrc;
		break;
	}
	return false;
}

