var curNav = false;
var nowLoading = false;
var curLodge = false;
var pkgOrigHtml = false;

var curPkgEditId = false;

function doRequest(){

	u = '';
	p = '';
	m = 'get';
	c = 'cont';
	f = '';
	
	if(arguments[0]){ u = arguments[0]; }
	if(arguments[1]){ p = arguments[1]; }
	if(arguments[2]){ m = arguments[2]; }
	if(arguments[3]){ c = arguments[3]; }
	if(arguments[4]){ f = arguments[4]; }
	
	if(c != 'no'){
		$(c).update('');
	}
	showLoader();
	
	new Ajax.Request(u, {
		method: m,
		parameters: 'ajax=true&'+p,
		onSuccess: function(t){
			if(t.responseText.match(/Error/)){
				hideLoader();
				showError(t.responseText);
			}else{
				if(c != 'no'){
					$(c).update(t.responseText);
					SI.Files.stylizeAll();
				}
				if(f){
			  		setTimeout(f,100);
				}else{
			  		hideLoader();
				}
			}
		}
	});
   
}



function showError(msg){
   alert(msg);
}

function showLoader(txt){
   
   if(!txt){ txt = 'Loading...'; }
   
	$('loaderTxt').update(txt);
   if(nowLoading == false){
      nowLoading = true;
      //new Effect.ScrollTo('top');
      $('loader').morph('left: 0px;',{duration: .3});
   }
   
}
function hideLoader(){
   if(nowLoading == true){
      nowLoading = false;
      $('loader').morph('left: -150px;',{delay: .5,duration: .3});
   }
}
function loadSweeps(){
   alert('loading sweeps.. not quite yet tho');
}
function showFeat(obj){
   obj.siblings.addClassName('on');
}
function hideFeat(obj){
   obj.siblings.removeClassName('on');
}

function navMouseover(nav_id){
   if(curNav != nav_id){
      $('nav_'+nav_id).addClassName('on');
   }
}

function navMouseout(nav_id){
   if(curNav != nav_id){
      $('nav_'+nav_id).removeClassName('on');
   }
}

function loadLodge(lodge_id){
   curLodge = lodge_id;
   window.location='/lodging/?lodge_id='+lodge_id;

//   $('superTop').morph('height: 120px;',{duration: .4});   
//   doRequest('/lodging/','fuse=loadLodge&lodge_id='+lodge_id,'get','cont','loadLodgeImages('+lodge_id+')');
}

function loadLodgeImages(lodge_id){
//   doRequest('/lodging/','fuse=loadLodgeImages&lodge_id='+lodge_id,'get','superTop','loadLodgePackages('+lodge_id+')');
   new Ajax.Request('/lodging/',{
   	method: 'get',
   	parameters: 'fuse=loadLodgeImages&lodge_id='+lodge_id,
   	onSuccess: function(t){
   		$('superTop').update(t.responseText);
   		
			loadSortingImages();
   	}
   });
}

function loadSortingImages(){
	if($('imgGal')){
	var dragDropImage1 = Sortable.create("imgGal", { 
		tag: 'img', 
		overlap: 'horizontal',
		dropOnEmpty: false,
		containment: ["imgGal"], 
		constraint: false, 
		onUpdate: function(){
			doRequest('/lodging/','fuse=saveImageOrder&'+Sortable.serialize('imgGal'),'get','no');
		}
	});
	var dropps1 = Droppables.add('imgTrash',{
		accept: 'imgGals',
		onDrop: function(element) {
			doRequest('/lodging/','fuse=deleteImage&id='+element.alt,'get','no');
			$('im_'+element.alt).remove();
		}
	});
	}
}

function loadLodgePackages(lodge_id){
   doRequest('/packages/','fuse=loadLodge&lodge_id='+lodge_id,'get','foot');
}

function updateSize(obj){
   //obj.setAttribute('size',obj.value.length+2);
}

function navClick(nav_id){

	showLoader();

   if(curNav != false){
      $('nav_'+curNav).removeClassName('on');
   }

   $('superTop').morph('height: 0px;',{duration: .4});
   $('superTop').update('');
   
   new Ajax.Request('/packages/',{
   	parameters: 'ajax=true&fuse=featLodger&nav_id='+nav_id,
   	method: 'get',
   	onSuccess: function(t){
   		$('cont').update(t.responseText);
		   new doRequest('/packages/','fuse=loadLodgers&nav_id='+nav_id,'get','foot');
		}
   });
   
   curNav = nav_id;
   
   if($('nav_'+nav_id).hasClassName('on') == false){
		$('nav_'+curNav).addClassName('on');
	}
}

function resetFooter(){
   doRequest('/','fuse=resetFooter','get','foot');
}

/*

function editPkg(id){
   if($('pkgImg_'+id)){
	   $('pkgImg_'+id).style.display = 'none';
	}
   pkgOrigHtml = $('pkgEditor_'+id).innerHTML;
   var pkgDetails = pkgOrigHtml.replace(/<br>/gi,"");
   $('pkgEditor_'+id).update("<textarea id='pkgTextDetails"+id+"' class='pkgEditor' name=''>"+pkgDetails+"</textarea>")
	$('editToolBar_'+id).update("You have made changes to your packages, do you wish to <button type='button' onclick='javascript: savePkg("+id+");'>save</button> your changes? <button type='button' onclick='javascript: cancelEditPkg("+id+");'>cancel</button>");
}

function cancelEditPkg(id){
   if(pkgOrigHtml != false){
      $('pkgEditor_'+id).update(pkgOrigHtml);
      $('editToolBar_'+id).update("You may <button onclick='javascript: editPkg("+id+");'>edit</button> this package.");
      pkgOrigHtml = false;
   }
}

*/

function editPkg(id){

	cancelEditPkg();
	
	curPkgEditId = id;
	
   if($('pkgImg_'+id)){
	   $('pkgImg_'+id).style.display = 'none';
	}
	
 	pkgOrigHtml = $('pkgEditor_'+id).innerHTML;
   
   /*
   var pkgDetails = pkgOrigHtml.replace(/<br>/gi,"\n");
   $('pkgEditor_'+id).update("<textarea id='pkgTextDetails"+id+"' class='pkgEditor' name=''>"+pkgDetails+"</textarea>")
	$('editToolBar_'+id).update("You have made changes to your packages, do you wish to <button type='button' onclick='javascript: savePkg("+id+");'>save</button> your changes? <button type='button' onclick='javascript: cancelEditPkg();'>cancel</button>");
	*/
	
	/* attempting to add ck editor */
	 var pkgDetails = pkgOrigHtml.replace(/<br>/gi,"\n");
   $('pkgEditor_'+id).update("<textarea id='pkgTextDetails"+id+"' class='pkgEditor' name='editor1'>"+pkgDetails+"</textarea><script type=\"text/javascript\">CKEDITOR.replace( \'editor1\' );</script>")
	$('editToolBar_'+id).update("You have made changes to your packages, do you wish to <button type='button' onclick='javascript: savePkg("+id+");'>save</button> your changes? <button type='button' onclick='javascript: cancelEditPkg();'>cancel</button>");
}

function cancelEditPkg(){
	if(curPkgEditId != false){
	   if($('pkgImg_'+curPkgEditId)){
		   $('pkgImg_'+id).style.display = 'block';
		}
		if(pkgOrigHtml == false){
      	$('pkgEditor_'+curPkgEditId).update(' ');
      }else{
      	$('pkgEditor_'+curPkgEditId).update(pkgOrigHtml);
      }
      $('editToolBar_'+curPkgEditId).update("You may <button onclick='javascript: editPkg("+curPkgEditId+");'>edit</button> this package.");
      pkgOrigHtml = false;
      curPkgEditId = false;
	}
}

function savePkg(id){
   
   var pkg = escape(Utf8.encode($('pkgTextDetails'+id).value));
	new Ajax.Request('/packages/index.php',{
		parameters: 'ajax=true&fuse=savePkg&id='+id+'&pkg='+pkg,
		method: 'post',
		onSuccess: function(t){
			$('editToolBar_'+id).update("Your changes are saved! You may <button onclick='javascript: editPkg("+id+");'>edit</button> this package.");
//			var newPkgDetails = pkg.replace(/\n/g,'<br>');
//			var newPkgDetails = t.responseText;
			$('pkgEditor_'+id).update(t.responseText);
			curPkgEditId = false;
			pkgOrigHtml = false;
		}
	});
   
}

function saveLodger(){
   var lodge_id = $('lodgeID').value;
   var formdata = $('lodgeForm').serialize();
   showLoader('Saving...');
//   alert(formdata);
   new Ajax.Request('/admin/',{
   	parameters: 'ajax=true&fuse=saveLodger&'+formdata,
   	method: 'post',
   	onSuccess: function(t){
   		window.location='/lodging/?lodge_id='+lodge_id;
   	}
   });
//   doRequest('/admin/','fuse=saveLodger&'+formdata,'post','cont',loadLodge(lodge_id));
}

function submitAIM(lodge_id){

   AIM.submit($('uploadfrm'), {
		'onStart': function(){
			showLoader();
			return true;
      },
      'onComplete': function(response) {
			if(response.match(/Error/)){
				alert(response);
			}else{
				//$('uploadfrm').reset();
				//loadLodgeImages(curLodge);
				window.location='/lodging/?lodge_id='+lodge_id;
			}
      }
   })

}

function showLogin(){
	new Effect.BlindDown('lodgerLogin',{
		beforeUpdate: function(){
			$('lodgerLogin').style.display = 'block';		
		}
	});
}

function setEditBoxActive(obj){
	$(obj).addClassName('editBoxActive');
}
function setEditBoxNoActive(obj){
	$(obj).removeClassName('editBoxActive');
}

var Utf8 = {

    // public method for url encoding
    encode : function (string) {
        string = string.replace(/\r\n/g,"\n");
        var utftext = "";

        for (var n = 0; n < string.length; n++) {

            var c = string.charCodeAt(n);

            if (c < 128) {
                utftext += String.fromCharCode(c);
            }
            else if((c > 127) && (c < 2048)) {
                utftext += String.fromCharCode((c >> 6) | 192);
                utftext += String.fromCharCode((c & 63) | 128);
            }
            else {
                utftext += String.fromCharCode((c >> 12) | 224);
                utftext += String.fromCharCode(((c >> 6) & 63) | 128);
                utftext += String.fromCharCode((c & 63) | 128);
            }

        }

        return utftext;
    },

    // public method for url decoding
    decode : function (utftext) {
        var string = "";
        var i = 0;
        var c = c1 = c2 = 0;

        while ( i < utftext.length ) {

            c = utftext.charCodeAt(i);

            if (c < 128) {
                string += String.fromCharCode(c);
                i++;
            }
            else if((c > 191) && (c < 224)) {
                c2 = utftext.charCodeAt(i+1);
                string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
                i += 2;
            }
            else {
                c2 = utftext.charCodeAt(i+1);
                c3 = utftext.charCodeAt(i+2);
                string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
                i += 3;
            }

        }

        return string;
    }

}