
YAHOO.util.Event.onDOMReady(function () {
	/*
	 * create the overlay for full sized images
	 */
	 
	bigImageOverlay = new YAHOO.widget.Panel("bigimage", { 
				width:"400px",                                	
				height:"400px",
				zIndex: 600,
				fixedcenter: true,
				modal: true,
				constraintoviewport: true,  
				underlay: "none",  
				close: false,  
				visible: false,  
				draggable: false} );
	bigImageOverlay.render(document.body);
//	bigImageOverlay.element.innerHTML = "";
	
console.log(bigImageOverlay.element.innerHTML);

/*	
	var newDom = document.createElement('div');
	newDom.id = 'close';
	newDom.innerHTML = "";	
	bigImageOverlay.element.appendChild(newDom);
	newDom = document.createElement('div');
	newDom.id = 'close2';
	newDom.innerHTML = "X";	
	bigImageOverlay.element.appendChild(newDom);
*/
	
//	bigImageOverlay.show();
	YAHOO.util.Event.addListener(bigImageOverlay.element, "click", function (e,panel) {panel.hide();},bigImageOverlay);
	YAHOO.util.Event.addListener('bigimage_mask', "click", function (e,panel) {panel.hide();},bigImageOverlay);

	/*
	* loading image for ajax/image
	*/
	var newImage = new Image();
	newImage.src = "imgs/graphics/spinner.gif";
	bigImageOverlay.loadingImage = newImage;  
	
	var doms; 
	doms = YAHOO.util.Dom.getElementsByClassName('day'); 
	
	/*
	 * setup the drop zones
	 */
	var days = YAHOO.util.Dom.getElementsByClassName('dayinmonth');
	for(i = 0; i < days.length; i++){
		var ddT =  new YAHOO.util.DDTarget(days[i]);
	} 
	
	
	setupDragablePics();

//	console.log("## - "+doms.length);

	YAHOO.util.Event.addListener("bigimagenext", "click", click_bigimage_next_prev,"next");
	YAHOO.util.Event.addListener("bigimageprev","click" , click_bigimage_next_prev,"prev");
	YAHOO.util.Event.addListener("bigimagetoday","click" , click_bigimage_next_prev,"today");


	for(var i = 0; i < doms.length; i++){
		var imagedom = YAHOO.util.Dom.getElementsByClassName('wide','img',doms[i]); 
		imagedom = imagedom.concat(YAHOO.util.Dom.getElementsByClassName('tall','img',doms[i]));
		if(imagedom[0]){
			var obj = new Object();
			obj.imgNode = imagedom[0];
			obj.domNode = doms[i];
			
//			obj.date = doms[i].firstChild.innerHTML;
//			console.log(doms[i].innerHTML);

			obj.mouseOverAnimation =  new YAHOO.util.Anim(  
					obj.imgNode,  
					   { opacity: {from: .2, to: 1 } },  
					   '.5',  
					   YAHOO.util.Easing.easeOut    
					 );
			obj.mouseOutAnimation = new YAHOO.util.Anim(  
					 obj.imgNode ,  
					   { opacity: {from: 1, to: .2 } },  
					   '.5',  
					   YAHOO.util.Easing.easeIn    
					 );
			
			myRe=/today/i;
			if(!myRe.test(doms[i].className)){
					YAHOO.util.Event.addListener(obj.imgNode, "mouseover", over_day, obj);
					YAHOO.util.Event.addListener(obj.imgNode, "mouseout", out_day, obj);
			}
			
			YAHOO.util.Event.addListener(obj.imgNode, "click", click_day, obj);
			
		}
	}
	
	var upload = document.getElementById("upload");
	YAHOO.util.Event.addListener(upload.firstChild, "click", upload_image);
}
); 


function click_bigimage_next_prev(e,obj){
	
	YAHOO.util.Event.stopEvent(e);
	var target = YAHOO.util.Event.getTarget(e);

	var cur_date = document.getElementById('image-date');
	var callback = {
			success: function(o) {
				var response = eval("("+o.responseText+")")
				if(response.img != null){
					var bigimage_dom = document.getElementById("bigimage");
					var image_dom = YAHOO.util.Dom.getElementsByClassName('','img',bigimage_dom);
					image_dom[0].src = response.img;
					
					var imagedate_dom = document.getElementById("image-date");
					imagedate_dom.innerHTML = response.date;
				}
				
			},
			failure: function(o) {
				alert("AJAX doesn't work"); //FAILURE
			}
	} 
	var transaction = YAHOO.util.Connect.asyncRequest("POST", "get_bigimage.php", callback, "action="+obj+"&date="+cur_date.innerHTML);
}




function setupDragablePics(){
	/*
	 * set upload area up for callbacks
	 */
	YAHOO.util.Event.onAvailable('upload',initUpload);

	
	/*
	 * setup the dragable pics
	 */
	var pendingimgs = YAHOO.util.Dom.getElementsByClassName('pendingpic');
	for(i = 0; i < pendingimgs.length; i++){
//			console.log("## - "+doms.length);
		var dd = new YAHOO.util.DD(pendingimgs[i]);
		dd.xyzNode = pendingimgs[i];
		dd.onDragEnter = function(e){console.log("entering");}
		dd.onDragDrop = function(e,id){
			
		}
		
		dd.on('dragDropEvent', function(ev,jsObj) { 
			var droppedDom = document.getElementById(ev.info);
			var dateDom = YAHOO.util.Dom.getElementsByClassName('date',"",droppedDom);
			
			var callback = {
					success: function(o) {
						YAHOO.util.Dom.setStyle(jsObj.xyzNode,"left","0px");
						YAHOO.util.Dom.setStyle(jsObj.xyzNode,"top","0px");
						droppedDom.appendChild(jsObj.xyzNode);
					},
					failure: function(o) {
						alert("AJAX doesn't work"); //FAILURE
					}
			} 
			var transaction = YAHOO.util.Connect.asyncRequest("POST", "pending.php", callback, "action=schedule&date="+dateDom[0].innerHTML+"&img="+jsObj.xyzNode.src);
			
			}, dd, true)
		
	} 
}

function initUpload(){
	YAHOO.util.Event.addListener('show-upload-from', "click", showUploadForm); 
}


function initUploadForm(){
	YAHOO.util.Event.addListener('uploadImageButton', "click", uploadImage); 
}

function showUploadFormDirectCall(errorMessage){
	var target = document.getElementById("upload");
	var callback = {
			success: function(o) {
				var response = eval("("+o.responseText+")");
				target.innerHTML = response.html;
				eval(response.script);
			},
			failure: function(o) {
				alert("AJAX doesn't work"); //FAILURE
			}
	}
	
	if(errorMessage){
		YAHOO.util.Connect.asyncRequest("GET", "pending.php?action=show_form&error="+errorMessage, callback, null);
	}else{
		YAHOO.util.Connect.asyncRequest("GET", "pending.php?action=show_form", callback, null);
	}
}

function showUploadForm(e,errorMessage){
	YAHOO.util.Event.stopEvent(e);
	var target = document.getElementById("upload");
	var callback = {
			success: function(o) {
				var response = eval("("+o.responseText+")");
				target.innerHTML = response.html;
				eval(response.script);
			},
			failure: function(o) {
				alert("AJAX doesn't work"); //FAILURE
			}
	}
	
	YAHOO.util.Connect.asyncRequest("GET", "pending.php?action=show_form", callback, null);
}

function uploadImage(e){
//	YAHOO.util.Event.stopEvent(e);
	var target = document.getElementById("upload");
	var callback = {
	       upload: function(o) {
		       if(o.responseText == 'true'){
			       show_pending_images();
		       }else{
			  showUploadFormDirectCall(o.responseText);
		       }
//				document.getElementById("upload").innerHTML =  o.responseText;
			},
			success: function(o) {
			},
			failure: function(o) {
				alert("AJAX doesn't work"); //FAILURE
			}
	}
	YAHOO.util.Connect.setForm('uploadform', true);
	YAHOO.util.Connect.asyncRequest('POST', "pending.php", callback, null);
}






function upload_image(e){
	var target = YAHOO.util.Event.getTarget(e);   
	YAHOO.util.Event.stopEvent(e);
	var callback = 
	{ 
	    success: function(o) {
			target.parentNode.innerHTML =  o.responseText;
        },
        
        start:function(eventType, args){ 
		}
	};

//	YAHOO.util.Connect.setForm('fileform', true);
	YAHOO.util.Connect.asyncRequest('POST', "pending.php?action=show_form", callback);
}

function setImageinOverlay(img,thedate){
//	alert(bigImageOverlay.element.innerHTML);
//	var elements = YAHOO.util.Dom.getElementsByClassName("","img",bigImageOverlay.element);
//	for(var i = 0; i < elements.length; i++){
//		bigImageOverlay.element.removeChild(elements[i]);
//	}

	var elements = YAHOO.util.Dom.getElementsByClassName("","img",bigImageOverlay.element);
	elements[0].src= img.src;
	
	
	if(thedate){
		document.getElementById('image-date').innerHTML = thedate;
	}
	
//	bigImageOverlay.element.innerHTML += "<img src='"+img.src+"'>";
	//	bigImageOverlay.setBody(newImage);
	bigImageOverlay.cfg.setProperty("width",img.width);
	bigImageOverlay.cfg.setProperty("height",img.height);

//console.log(img.width);	
//console.log(img.height);	
	
	bigImageOverlay.render();
	bigImageOverlay.center();
	bigImageOverlay.show();
	
//console.log(bigImageOverlay.element.innerHTML);
	
}

function isPendingImageLoaded(){
	if(bigImageOverlay.pedningImage.complete){
		setImageinOverlay(bigImageOverlay.pedningImage);
		bigImageOverlay.pedningImage = null;
	}else{
		setTimeout("isPendingImageLoaded()",10);
	}
}


function click_day(e,obj){
	var target = YAHOO.util.Event.getTarget(e);
	var src = obj.imgNode.src;
	var parts = src.split("/");
	src = "";
	for(var i = 0; i < parts.length; i++){
		if(parts[i] == "thumb"){
			src += "full/"+parts[i+1];
			break;
		}else{
			src += parts[i]+"/";
		}
	}

	//get the date
	var elements = YAHOO.util.Dom.getElementsByClassName("date","",target.parentNode);
	var thedate = elements[0].innerHTML;

	setImageinOverlay(bigImageOverlay.loadingImage,thedate);
	
	var newImage = new Image();
	newImage.src = src;
	
	bigImageOverlay.pedningImage = newImage;
	setTimeout("isPendingImageLoaded()",10);
}

function over_day(e,obj){
	var target = YAHOO.util.Event.getTarget(e);   
	
	obj.mouseOutAnimation.stop();
	obj.mouseOverAnimation.animate();
}

function out_day(e,obj){
	var target = YAHOO.util.Event.getTarget(e);   
	
	obj.mouseOverAnimation.stop();
	obj.mouseOutAnimation.animate();
}


function logoutlink(){
	var target = document.getElementById("login-area");
	
	var callback = {
			success: function(o) {
				var response = eval("("+o.responseText+")");
				remove_pending_images();
				target.innerHTML = response.html;
				eval(response.script);
			},
			failure: function(o) {
				alert("AJAX doesn't work"); //FAILURE
			}
	} 
	var transaction = YAHOO.util.Connect.asyncRequest("GET", "callbacks/login.php?action=logout", callback, null);
}

function loglink(action){
//	YAHOO.util.Event.stopEvent(e);
//	var target = YAHOO.util.Event.getTarget(e);   

	var target = document.getElementById("login-area");
	
	var callback = {
			success: function(o) {
				var response = eval("("+o.responseText+")");
				target.innerHTML = response.html;
				eval(response.script);
			},
			failure: function(o) {
				alert("AJAX doesn't work"); //FAILURE
			}
	} 
	var transaction = YAHOO.util.Connect.asyncRequest("GET", "callbacks/login.php?action="+action, callback, null);
}

function setup_log_in_link(){
	YAHOO.util.Event.purgeElement('login-area');
	YAHOO.util.Event.addListener('login-area', 'click', function (e) { loglink('show_form'); });
}

function setup_log_in_form(){
	YAHOO.util.Event.purgeElement('login-area');
	YAHOO.util.Event.on('login-form', 'submit', submit_login_form);
}

function setup_log_out_link(){
//	show_pending_images();
	YAHOO.util.Event.purgeElement('login-area');
	YAHOO.util.Event.addListener('login-area', 'click', logoutlink );
}


function submit_login_form(e){
	YAHOO.util.Event.stopEvent(e);
	var target = document.getElementById("login-area");
	var form = document.getElementById("login-form");
	
	var callback = {
			success: function(o) {
				var response = eval("("+o.responseText+")");
				target.innerHTML = response.html;
				eval(response.script);

			},
			failure: function(o) {
				alert("AJAX doesn't work"); //FAILURE
			}
	} 
	var transaction = YAHOO.util.Connect.asyncRequest("POST", "callbacks/login.php", callback, "action=login&user="+form.user.value+"&password="+form.password.value);
}
function remove_pending_images(){
	var target = document.getElementById("upload");
	target.innerHTML = "";
}

function show_pending_images(){
	var target = document.getElementById("upload");
	
	var callback = {
			success: function(o) {
				var response = eval("("+o.responseText+")");
				target.innerHTML = response.html;
				eval(response.script);
			},
			failure: function(o) {
				alert("AJAX doesn't work"); //FAILURE
			}
	} 
	var transaction = YAHOO.util.Connect.asyncRequest("GET", "pending.php?action=show", callback, "");
}


