var liveOrAll = 'all';

function submitOnEnter(myfield,e) {
	var keycode;
	if (window.event) {
		keycode = window.event.keyCode;
	} else {
		if (e) {
			keycode = e.which;
		} else {
			return true;
		}
	}
	
	if (keycode == 13) {
	   myfield.form.submit();
	   return false;
	} else {
		return true;
	}
}


/*
AJAX RELATED FUNCTIONS
*/

var currentSearchPage = 1;

function createAjax() {
    var ro;
    if(window.XMLHttpRequest){
        ro = new XMLHttpRequest();
    }else if (window.ActiveXObject) {
        ro = new ActiveXObject("Microsoft.XMLHTTP");
    } else {
        ro = null;
    }
    return ro;
} 

function setupDraggable() {
    document.onmousemove = mouseMove;
    document.onmouseup   = mouseUp;
}


var dragObject  = null;
var mouseOffset = null;

function getMouseOffset(target, ev){
    ev = ev || window.event;

    var docPos    = getPosition(target);
    var mousePos  = mouseCoords(ev);
    return {x:mousePos.x - docPos.x, y:mousePos.y - docPos.y};
}

function getPosition(e){
    var left = 0;
    var top  = 0;

    while (e.offsetParent){
        left += e.offsetLeft;
        top  += e.offsetTop;
        e     = e.offsetParent;
    }

    left += e.offsetLeft;
    top  += e.offsetTop;

    return {x:left, y:top};
}

function mouseMove(ev){
    ev           = ev || window.event;
    var mousePos = mouseCoords(ev);

    if(dragObject){
        dragObject.style.position = 'absolute';
        dragObject.style.top      = (mousePos.y - mouseOffset.y) + "px";
        dragObject.style.left     = (mousePos.x - mouseOffset.x) + "px";

        return false;
    }
}
function mouseCoords(ev){
    if(ev.pageX || ev.pageY){
        return {x:ev.pageX, y:ev.pageY};
    }
    return {
        x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,
        y:ev.clientY + document.body.scrollTop  - document.body.clientTop
    };
}
function mouseUp(){
    dragObject = null;
}

function makeDraggable(item){
    if(!item) return;
    item.onmousedown = function(ev){
        dragObject  = this;
        mouseOffset = getMouseOffset(this, ev);
        return false;
    }
}
function makeCustomDraggable(item1, item2){
    if(!item1) return;
    //alert(item1);
    //alert(item2);
    item1.onmousedown = function(ev){
        //alert('mouse down');
        dragObject  = item2;
        mouseOffset = getMouseOffset(this, ev);
        return false;
    }
    //alert("OK");
}
/*
END OF DRAGGABLE CONTENT RELATED FUNCTIONS
*/ 

function showNewMessage(subjPrefill, senderPrefill) {
    var d = document.getElementById('_newMessage_');
    var subject = document.getElementById('_newMessageSubject_');
    var receiver = document.getElementById('_newMessageReceiver_');
    var body = document.getElementById('_newMessageBody_');
    subject.value = subjPrefill;
    receiver.value = senderPrefill;
    body.value = '';
    d.style.display = 'block';
}
function hideNewMessage() {
    var d = document.getElementById('_newMessage_');
    d.style.display = 'none';
}
function sendMessage($module) {
    var d = document.getElementById('_newMessage_');
    var subject = document.getElementById('_newMessageSubject_');
    var receiver = document.getElementById('_newMessageReceiver_');
    var body = document.getElementById('_newMessageBody_');
    //alert("Sending Message");
    var ajax=createAjax();
    ajax.open("POST", "./ajax/sendNewMessage.php");
    ajax.onreadystatechange = function() {
        //alert("changed:" + ajax.readyState);
        if (ajax.readyState == 4) {
            var response = eval('(' + ajax.responseText + ')');
            alert(response['message']);
            //alert(response['error']);
            
            document.getElementById('_newMessageSubject_').value = '';
            document.getElementById('_newMessageReceiver_').value = '';
            document.getElementById('_newMessageBody_').value = '';
            
            if ($module == 'user') {
            	document.location.href = '/messages.php?folder=sent';
            } else {
            	document.location.href = '/modMessages.php?folder=sent';
            }
        }
    };
    
    var params = "receiver=" + encodeURI(receiver.value) + "&subject=" + encodeURI(subject.value) + "&body=" + encodeURI(body.value)+ "&module=" + $module;
    
    ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    ajax.setRequestHeader("Content-length", params.length);
    ajax.setRequestHeader("Connection", "close");
    
    ajax.send(params);
    
    
}

function showAllLanguages() {
    var x = document.getElementById('allLanguagesDiv');
    if (x.style.display == "block") {
        x.style.display = "none";
    } else {
        x.style.display = "block";
    }
}

function changeCurrentLanguage() {
    
}

//select input

Menu.prototype._id;
Menu.prototype._options;
Menu.prototype._selectClass;
Menu.prototype._name;

Menu.prototype._dropClass;
function Menu(id, name, selectClass, dropClass) {
    this._id = id;
    this._selectClass = selectClass;
    this._dropClass = dropClass;
    this._name = name;
    this._options = [];
};
Menu.prototype.getID = function() {
    return this._id;
};
Menu.prototype.addOption = function(value, title, className) {
    var option = {'val':value, 'title':title, 'className': className};
    this._options.push(option);
};
Menu.prototype.display = function(selID) {
    selID -= 1;
    var global = this;
    // the select div
    var selDiv = document.createElement("div");
    selDiv.className = this._selectClass;
    selDiv.id = this._id + "_sel";
    selDiv.innerHTML = this._options[selID].title;
	
    selDiv.onclick = function() {
        var x = document.getElementById(global._id + "_options");
        if (x.style.display != "none") {
            x.style.display = "none";
        } else {
            x.style.display = "block";
        }
    }
    
    // the div containing the options
    var optionsDiv = document.createElement("div");
    optionsDiv.className = this._dropClass;
    optionsDiv.id = this._id + "_options";
    optionsDiv.style.display = "none";
    
    // the hidden input
    var hiddenInput = document.createElement("input");
    hiddenInput.type = "hidden";
    hiddenInput.id = this._id + "_hiddenValue";
    hiddenInput.name = this._name;
	hiddenInput.value = this._options[selID].val;
    
    optionsDiv.appendChild(hiddenInput);
    
    // the options
    var i;
    var opDiv;
    for (i=0;i<this._options.length;i++) {
        opDiv = document.createElement("div");
        opDiv.className = this._options[i].className;
        opDiv.innerHTML = this._options[i].title;
        opDiv.hidValue = this._options[i].val;
        opDiv.onclick = function() {
            document.getElementById(global._id + "_hiddenValue").value = this.hidValue;
			document.getElementById(global._id + "_sel").innerHTML = this.innerHTML;
            document.getElementById(global._id + "_options").style.display = "none";
        }
        optionsDiv.appendChild(opDiv);
    }
    document.getElementById(this._id).appendChild(selDiv);
    document.getElementById(this._id).appendChild(optionsDiv);
};
//end select


function toggleCats(e) {
  	if (e.opened != 0) {
		Effect.BlindUp('category_inputs', {duration: 0.3});
		e.opened = 0;
	} else {
		Effect.BlindDown('category_inputs', {duration: 0.3});
		e.opened = 1;
	}
}

/*
Functions for AJAX search
*/
function applyFilters($area) {	
	liveOrAll = $area;
	currentSearchPage = 1;
	filterModels($area);
}

function filterModels($area) {
	// get the categories selected
	var i = 0;
	var x;
	var etnicityParams = "";
	var categoryParams = "";
	var bodyParams = "";
	var online = "";
	var ageParams = "";
	var and = "";
	for (i=0;i<2000;i++) {
		if ($area == 'all') {
			x = document.getElementById('cat_all_' + i);
		} else {
			x = document.getElementById('cat_live_' + i);
		}
		if (x == null) {
			break;
		}
		if (x.checked) {
			categoryParams = categoryParams + and + x.value;
			and = ",";
		}
	}
	and = "";
	for (i=0;i<2000;i++) {
		if ($area == 'all') {
			x = document.getElementById('body_all_' + i); 
		} else {
			x = document.getElementById('body_live_' + i); 
		}
		
		if (x == null) {
			break;
		}
		if (x.checked) {
			bodyParams = bodyParams + and + x.value;
			and = ",";
		}
	}
	and = "";
	for (i=0;i<2000;i++) {
		if ($area == 'all') {
			x = document.getElementById('etnicity_all_' + i); 
		} else {
			x = document.getElementById('etnicity_live_' + i); 
		}	
		if (x == null) {
			break;
		}
		if (x.checked) {
			etnicityParams = etnicityParams + and + x.value;
			and = ",";
		}
	}
	and = "";
	for (i=0;i<2000;i++) {
		if ($area == 'all') {
			x = document.getElementById('age_all_' + i); 
		} else {
			x = document.getElementById('age_live_' + i); 
		}	
		
		if (x == null) {
			break;
		}
		if (x.checked) {
			ageParams = ageParams + and + x.value;
			and = ",";
		}
	}
	if ($area == 'all') {
		online = document.getElementById('onlineStatus_all').value;
	} else {
		online = document.getElementById('onlineStatus_live').value;
	}
	//document.getElementById("_response_").innerHTML = "asd<img src='images/loading.gif'>";
	var ajax = createAjax();
	if (ajax != null) {
		//alert('s');
		
		//alert('s');
		ajax.open("POST", "/search.php");
		var parameters = "page="+currentSearchPage+"&isAjax=1&category=" + categoryParams + "&body=" + bodyParams + "&age=" + ageParams + "&etnicity=" + etnicityParams + "&online=" + online;		
		ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      	ajax.setRequestHeader("Content-length", parameters.length);
      	ajax.setRequestHeader("Connection", "close");
      	ajax.onreadystatechange = function() {
	      	if (ajax.readyState == 4) {
	      		//alert("response");
	      		document.getElementById("_response_").innerHTML = ajax.responseText;
	      	}
      	};
      	// show the loadin bar
      	
      	ajax.send(parameters);
	}
}

function changePage(x) {
	currentSearchPage = x;
	filterModels(liveOrAll);
}

function setFlashSize(w, h) {
	
}
