var tmp_date;

function PAGE_SIZE(){
	
	if( window.innerHeight && window.scrollMaxY ) // Firefox 
{
	PAGE_WIDTH = window.innerWidth + window.scrollMaxX;
	PAGE_HEIGHT = window.innerHeight + window.scrollMaxY;
}
else if( document.body.scrollHeight > document.body.offsetHeight ) // all but Explorer Mac
{
	PAGE_WIDTH = document.body.scrollWidth;
	PAGE_HEIGHT = document.body.scrollHeight;
}
else // works in Explorer 6 Strict, Mozilla (not FF) and Safari
{ 
	PAGE_WIDTH = document.body.offsetWidth + document.body.offsetLeft; 
	PAGE_HEIGHT = document.body.offsetHeight + document.body.offsetTop; 
}

}

function showMsgBox(title, msg, icon){

    var iconvalue;
    
    if (icon == 'INFO') {
        iconvalue = Ext.MessageBox.INFO;
    }
    else 
        if (icon == 'QUESTION') {
            iconvalue = Ext.MessageBox.QUESTION;
        }
        else 
            if (icon == 'WARNING') {
                iconvalue = Ext.MessageBox.WARNING;
            }
            else 
                if (icon == 'ERROR') {
                    iconvalue = Ext.MessageBox.ERROR;
                }
    
    Ext.MessageBox.show({
        title: title,
        msg: msg,
        buttons: Ext.MessageBox.OK,
        icon: iconvalue
    });
}


function get_CONTACT_LIST_CHECKED(){
    //var records = CONTACT_LIST_STORE.getModifiedRecords();
	/*var records = checkColumn.getSelections();
    var modified_data = [];
	var j=0;
    for (var i = 0; i < records.length; i++) {
            modified_data[j++] = records[i].data;
    }
    var CONTACT_LIST_CHECKED = modified_data;
    return CONTACT_LIST_CHECKED;*/
	var modified_data = [];
	var j=0;
	for(key in CONTACT_CHECKED_LIST){
		modified_data[j++] = CONTACT_CHECKED_LIST[key];
	}
    var CONTACT_LIST_CHECKED = modified_data;
    return CONTACT_LIST_CHECKED;
}


function Reload_Tag_List(){
    Ext.Ajax.request({
        url: PHP_AJAX_URL + '/Reload_Tag_List.php?dummy=' + (new Date()).getTime(),
        method: 'POST',
        success: function(response, options){
            eval('TAGS_DATA = ' + response.responseText + ';');
            Tag_Search_Auto_Complete();
        }
    });
}


function Reload_Calen_load(curr_month)
{
	Ext.get("calendar_loader").dom.style.display="block";
	
	if (!curr_month) {
		curr_month = Ext.get('Calendar').child('button').dom.innerHTML;
	}
	
    var calen_date, calen_date_day, calen_div_id, calen_div_class, calen_div_start, calen_div_DATE, loaded_day_class_counter, loaded_div, loaded_divs, classname;
    Ext.Ajax.request({
        url: PHP_AJAX_URL + '/Reload_Calen_Load.php?dummy=' + (new Date()).getTime(),
        method: 'POST',
		params:{
			'curr_month':curr_month
		},
        success: function(response, options){
            eval('CALEN_LOAD = ' + response.responseText + ';');
            
            for (loaded_day_class_counter = 0; loaded_day_class_counter < 7; loaded_day_class_counter++) {
                for (var loaded_day_class_counter1 = 0; loaded_day_class_counter1 < 7; loaded_day_class_counter1++) {
					
					if(loaded_day_class_counter+loaded_day_class_counter1 > 6) continue;
					
					classname = loaded_day_class_counter+''+loaded_day_class_counter1;
                    eval('loaded_divs = Ext.query(".loaded_day' + classname + '");');
                    for (var x = 0; x < loaded_divs.length; x++) {
                        loaded_div = Ext.get(loaded_divs[x]);
                        if (loaded_div) {
                            eval('if (loaded_div.hasClass("loaded_day' + classname + '")) {loaded_div.removeClass("loaded_day' + classname + '");}');
                        }
                    }
                }
            }
            
            
            var CALEN_LOAD_LENGTH = CALEN_LOAD.length;
            
            for (var i = 0; i < 42; i++) {
                eval('calen_div_DATE = Ext.get(\'calen_div_' + i + '\').child(\'span\').dom.innerHTML');
                if (calen_div_DATE == 1) {
                    calen_div_start = i - 1;
                    break;
                }
            }
            
			 tmp_date = curr_month;
			var arr = tmp_date.split(" ");
            for (var i = 0; i < 42; i++) {
				if((Number(DOB[0])+calen_div_start)==i && DOB[1]==arr[0])
					eval('Ext.get(\'calen_div_' + i + '\').addClass(\'dob\');');
				else{
					eval('Ext.get(\'calen_div_' + i + '\').removeClass(\'dob\');');
					eval('Ext.get(\'calen_div_' + i + '\').removeClass(\'today\');');
				}
					
			}
			
            for (var calen_counter = 0; calen_counter < CALEN_LOAD_LENGTH; calen_counter++) {
                calen_date = CALEN_LOAD[calen_counter][0];
                //alert('The div related to date :: '+calen_date.substring(8)+' is '+(calen_div_start+parseInt(calen_date.substring(8),10)));
                calen_div_id = calen_div_start + parseInt(calen_date.substring(8), 10);
                calen_div_class = 'loaded_day' + CALEN_LOAD[calen_counter][1];
                calen_div_title = CALEN_LOAD[calen_counter][2];
                eval('Ext.get(\'calen_div_' + calen_div_id + '\').dom.parentNode.title = \'' + calen_div_title + '\';');
                eval('Ext.get(\'calen_div_' + calen_div_id + '\').addClass(\'' + calen_div_class + '\');');
                //exit;
            }
			
			var CURR_DAY_DIV_ID = Number(CURR_DAY)+calen_div_start;
			if(CURR_MONTH==arr[0] && CURR_YEAR==arr[1])
				eval('Ext.get(\'calen_div_' + CURR_DAY_DIV_ID + '\').addClass(\'today\');');
			
			document.getElementById('loading_page').style.display='none';
			Ext.get("calendar_loader").dom.style.display="none"; //calendar loader hidden
        }
    })
}


function Reload_Sched_List(){
    var month_adjust = 0;
    var myDATE = '';
	
	Ext.get('cal_sch_details').dom.innerHTML='<div class=mini_loader></div>';
	
    if (Ext.get(this.id)) {
        myDATE = Ext.get(this.id).child('span').dom.innerHTML + ' ' + Ext.get('Calendar').child('button').dom.innerHTML;
        if ((Ext.get(this.id).dom.parentNode.className).match(/prev/ig)) {
            month_adjust = -1;
        }
        else 
            if ((Ext.get(this.id).dom.parentNode.className).match(/next/ig)) {
                month_adjust = 1;
            }
    }
	else{
		myDATE = LAST_SCHED_DATE;
		month_adjust = LAST_MONTH_ADJUST;
	}
		LAST_SCHED_DATE = myDATE;
		LAST_MONTH_ADJUST = month_adjust;		

	
    Ext.Ajax.request({
        url: PHP_AJAX_URL + '/schedules.php',
        waitTitle: 'Connecting',
        waitMsg: 'Sending data...',
        method: 'POST',
        params: {
            'myDATE': myDATE,
            'month_adjust': month_adjust,
            'task': 'list'
        },
        success: function(response, options){
            Ext.get('SCHED_LIST_DIV').update('');
			Ext.get('SCHED_LIST_DIV_HEAD').update('');
            var tpl_date = new Ext.Template(TPL_VARS['SCHEDULE_LIST_DATE']);
            tpl_date.compile();
            
            var tpl = new Ext.Template(TPL_VARS['SCHEDULE_LIST_DONE']);
            tpl.compile();

            var tpl1 = new Ext.Template(TPL_VARS['SCHEDULE_LIST_UNDONE']);
            tpl1.compile();
			            
            var obj_date_list = Ext.util.JSON.decode(response.responseText);
			
			var Sel_Date=obj_date_list[0];
			
            tpl_date.append('SCHED_LIST_DIV_HEAD', obj_date_list[0]);
            var obj = obj_date_list[1];
            var obj_length = obj.length;
            
            if (obj_length == 0) {
                tpl = new Ext.Template(TPL_VARS['SCHEDULE_LIST_EMPTY']);
                tpl.compile();
                tpl.append('SCHED_LIST_DIV', obj);
            }
            else {
                for (var i = 0; i < obj_length; i++) {
					
                    if(i%2)
						obj[i]['class'] = 'complete she_detail2';
					else
						obj[i]['class'] = 'complete she_detail1';
						
                    if (obj[i]['completed'] == 0) {
						if(i%2)
							obj[i]['class'] = 'uncomplete she_detail2';
						else
							obj[i]['class'] = 'uncomplete she_detail1';
						tpl1.append('SCHED_LIST_DIV', obj[i]);
					}
					else {
						tpl.append('SCHED_LIST_DIV', obj[i]);
					}
                }
            }
			Ext.get('cal_sch_details').dom.innerHTML = Ext.get('SCHED_LIST_DIV').dom.innerHTML;
			
			var o_id = Ext.get('cal_sch_viewer').dom.childNodes[0].id;
			var t_id = Ext.get(o_id).dom.childNodes[1].id;
			Ext.get(t_id).dom.innerHTML=Sel_Date.date;
        }
    });
    
}


function Reload_Todo_List(){

    Ext.Ajax.request({
        url: PHP_AJAX_URL + '/todos.php',
        waitTitle: 'Connecting',
        waitMsg: 'Sending data...',
        method: 'POST',
        params: {
            'task': 'list'
        },
        success: function(response, options){
            Ext.get('TODO_DIV').update('');
            
            var tpl = new Ext.Template(TPL_VARS['TODO_LIST_DONE']);
            tpl.compile();

            var tpl1 = new Ext.Template(TPL_VARS['TODO_LIST_UNDONE']);
            tpl1.compile();
			            
            obj = Ext.util.JSON.decode(response.responseText);
            var obj_length = obj.length;
            
            if (obj_length == 0) {
                tpl = new Ext.Template(TPL_VARS['TODO_LIST_EMPTY']);
                tpl.compile();
                tpl.append('TODO_DIV', obj);
            }
            else {
                for (var i = 0; i < obj_length; i++) {
                    if(i%2)
                    	obj[i]['class'] = 'complete she_detail2';
					else
						obj[i]['class'] = 'complete she_detail1';
						
                    if (obj[i]['completed'] == 0) {
						if(i%2)
                    		obj[i]['class'] = 'uncomplete she_detail2';
						else
							obj[i]['class'] = 'uncomplete she_detail1';
						tpl1.append('TODO_DIV', obj[i]);
					}
					else {
						tpl.append('TODO_DIV', obj[i]);
					}
                }
            }
			//Ext.get('to_do_details').dom.innerHTML = Ext.get('TODO_DIV').dom.innerHTML;
        }
    });
    
}


function Tag_Search_Auto_Complete(){
    var TAG_AUTO_STORE = new Ext.data.SimpleStore({
        fields: ['id', 'name'],
        data: TAGS_DATA 
    });
    var combo = new Ext.form.ComboBox({
        store: TAG_AUTO_STORE,
        displayField: 'name',
        forceSelection: true,
        valueField: 'id',
        typeAhead: true,
        mode: 'local',
		width:100,
        triggerAction: 'all',
        emptyText: 'Tag Search',
        selectOnFocus: true,
        applyTo: 'tag_search'
    });
}

function Random_Search_Style(){
    var combo = new Ext.form.TextField({
        emptyText: 'Random Search',
        selectOnFocus: true,
		width:100,
        applyTo: 'contact_search'
    });
}

function Group_Search(){

	var selected_val = Ext.get('group_search').dom.value;

	Ext.get('group_search_div').update('');
	Ext.get('group_search_div').dom.innerHTML = '<input type=text id=group_search size=20>';
	
	var combo = new Ext.form.ComboBox({
		store:GROUPS_LIST_DATA,
        displayField: 'name',
        forceSelection: true,
        valueField: 'id',
        typeAhead: true,
        mode: 'local',
		width:100,
        triggerAction: 'all',
        emptyText: 'Group Search',
        selectOnFocus: true,
		applyTo: 'group_search'
		
    });

	if (selected_val) {
		Ext.get('group_search').dom.value = selected_val;
	}
}

function Get_TagID_By_Value(myarray, myvalue){
    for (keyVar in myarray) {
        if (myvalue == myarray[keyVar][1]) {
            return myarray[keyVar][0];
        }
    }
}

function Get_GroupID_By_Value(myarray, myvalue){
    for (var i=0; i<myarray.length; i++) {
        if (myvalue == myarray[i][1]) {
            return myarray[i][0];
        }
    }
	return false;
}


function Get_Load_By_Date(mydate){
    for (keyVar in CALEN_LOAD) {
        if (mydate == CALEN_LOAD[keyVar][0]) {
            //alert(CALEN_LOAD[keyVar]);
            return CALEN_LOAD[keyVar][1];
        }
    }
}

function invite_for_reg(){
/*
	var http_request = false;

      http_request = false;
      if (window.XMLHttpRequest) { // Mozilla, Safari,...
         http_request = new XMLHttpRequest();
         if (http_request.overrideMimeType) {
         	// set type accordingly to anticipated content type
            //http_request.overrideMimeType('text/xml');
            http_request.overrideMimeType('text/html');
         }
      } else if (window.ActiveXObject) { // IE
         try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e) {
            try {
               http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
         }
      }
      if (!http_request) {
         alert('Unable to sent request!');
         return false;
      }
      http_request.onreadystatechange = alertContents;
      http_request.open('POST', url + parameters, true);
      http_request.send(null);
*/

   var xmlHttpReq = false;
    var self = this;
    // Mozilla/Safari
    if (window.XMLHttpRequest) {
        self.xmlHttpReq = new XMLHttpRequest();
    }
    // IE
    else if (window.ActiveXObject) {
        self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    self.xmlHttpReq.open('POST', './php_ajax/invite.php', true);
    self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    self.xmlHttpReq.onreadystatechange = function() {
        if (self.xmlHttpReq.readyState == 4) {
            updatepage(self.xmlHttpReq.responseText);
        }
    }
	query = "email_id="+document.getElementById('email_id').value;
    self.xmlHttpReq.send(query);

	document.getElementById('email_id').value='';
	document.getElementById('email_id').focus();
}

function updatepage(str){
	
	document.getElementById("message_div").style.display='block';
	document.getElementById('loader_div').style.display='none';
	document.getElementById("message_div").style.top=document.documentElement.scrollTop+170+"px";

    if(str=="exists"){
		//alert("Enter email id already exists!");
		document.getElementById('message_div').className='box_error';
		document.getElementById("msg_text").innerHTML='You already have an account.';
		return false;
	}else if(str=="pending"){
		//alert("Enter email id already requested and pending for approval of admin.");
		document.getElementById('message_div').className='box_info';
		document.getElementById("msg_text").innerHTML='Your email is already pending approval.';
	}else if(str=="approve"){
		//alert("Enter email id already requested and pending for approval of admin.");
		document.getElementById('message_div').className='box_info';
		document.getElementById("msg_text").innerHTML='We have approved your request. Please check your inbox.';		
	}else{
		//alert("Your request has been sent to admin!");
		document.getElementById('message_div').className='box_msg';
		document.getElementById("msg_text").innerHTML='Thanks! We will send you an email as soon as one is available.';
	}
}
