var cMatcher = function() {
	this.oOptions = {
		oUsers1 : {
			iUserId: 0,
			iIndex : 0,
			iId : 0,
			sGender : 0,
			iPerPage : 3+(Math.floor((getPageSize().height-566)/95)),
			aExcluded : new Array(),
			aIncluded : new Array(),
			bUserId: true,
			bId: true,
			bGender: true
		},
		oUsers2 : {
			iUserId: 0,
			iIndex : 0,
			iId : 0,
			sGender : 0, 
			iPerPage : 6, 
			aExcluded : new Array(),
			aIncluded : new Array(),
			bUserId: true,
			bId: true,
			bGender: true
		},
		oUser3: 0,
		oRaiting: new Array(),
		sLinkMode: "Connect"
	};
};

cMatcher.prototype = {
	
	/*Class Engine Functions*/
	load: function(oOptions) {
		
		if(oOptions.oUser1) {
			this.oOptions.oUsers1.iUserId = oOptions.oUser1;
			this.oOptions.oUsers2.aExcluded.push(oOptions.oUser1);
		}
		
		if(oOptions.oUser2) {
			this.oOptions.oUsers2.iUserId = oOptions.oUser2;
			if(oOptions.oUser3) {
				this.oOptions.oUser3 = oOptions.oUser3;
				this.oOptions.oUsers1.aExcluded.push(oOptions.oUser3);
			}
			this.oOptions.oUsers1.aExcluded.push(oOptions.oUser2);
		}
				
		if(oOptions.sLinkMode) {
			this.oOptions.sLinkMode = oOptions.sLinkMode;
		}
		
		if(oOptions.oUsers1) {
			if(oOptions.oUsers1.bUserId==false) {
				this.oOptions.oUsers1.bUserId = false;
			}
			if(oOptions.oUsers1.bId==false) {
				this.oOptions.oUsers1.bId = false;
			}
			if(oOptions.oUsers1.bGender==false) {
				this.oOptions.oUsers1.bGender = false;
			}
			if(oOptions.oUsers1.sGender) {
				this.oOptions.oUsers1.sGender = oOptions.oUsers1.sGender;
			}
			if(oOptions.oUsers1.iId) {
				this.oOptions.oUsers1.iId = oOptions.oUsers1.iId;
			}
		}
		
		if(oOptions.oUsers2) {
			if(oOptions.oUsers2.bUserId==false) {
				this.oOptions.oUsers2.bUserId = false;
			}
			if(oOptions.oUsers2.bId==false) {
				this.oOptions.oUsers2.bId = false;
			}
			if(oOptions.oUsers2.bGender==false) {
				this.oOptions.oUsers2.bGender = false;
			}
			if(oOptions.oUsers2.sGender) {
				this.oOptions.oUsers2.sGender = oOptions.oUsers2.sGender;
			}
			if(oOptions.oUsers2.iId) {
				this.oOptions.oUsers2.iId = oOptions.oUsers2.iId;
			}
		}
		
		this.oOptions.oRaiting['0'] = true;
		this.oOptions.oRaiting['1'] = true;
		this.oOptions.oRaiting['2'] = true;
		this.oOptions.oRaiting['3'] = true;
		this.oOptions.oRaiting['4'] = true;
		this.oOptions.oRaiting['5'] = true;
		
		show_popup();
		$.ajax({
	    type: "POST",
	    url: "?ajaxtool/matcher",
	    dataType: "json",
	    data: "&oOptions=" + JSON.stringify(this.oOptions),
	    success: function(msg) { 
	    	if(msg.error) {
	    		$('#popContainer').html(msg.message);
	    	} else {
	    		$('#popContainer').html(msg.message);
	    		$('#matcherContent').css('height',oMatcher.oOptions.oUsers1.iPerPage*95+99+"px");
	    		oMatcher.oOptions = msg.oOptions;
	    		oMatcher.show();
	    	}
	    	resetPopup();
	    	$('#popLoader').css('display','none');
	   	}
	  });
	},
	
	show: function() {
		$('#matcherContent').css('background','url(images/loadingAnimation.gif) no-repeat center');
		$('#matchFriendsTable').css('visibility','hidden');
		resetPopup();
		
		$.ajax({
	    type: "POST",
	    url: "?ajaxcontent/matcher",
	    dataType: "json",
	    data: "&oOptions=" + JSON.stringify(this.oOptions),
	    success: function(msg) { 
	    	if(msg.error) {
	    		$('#matcherContent').html(msg.message);
	    	} else {
	    		$('#matcherContent').html(msg.message);
	    	}
	    	resetPopup();
	    	$('#matcherContent').css('background','#ffffff');
	   	}
	  });
		
	},
		

	/*Class Options Functions*/
	setUsers1Index: function(iIndex) {
		this.oOptions.oUsers1.iIndex = iIndex;
		this.show();
	},
	
	setUsers1Id: function(iId) {
		this.oOptions.oUsers1.iId = iId;
		this.oOptions.oUsers1.sGender = 0;
		this.oOptions.oUsers1.iIndex = 0;
		this.show();
	},
	
	setUsers1Gender: function(sGender) {
		this.oOptions.oUsers1.sGender = sGender;
		this.oOptions.oUsers1.iId = 0;
		this.oOptions.oUsers1.iIndex = 0;
		this.show();
	},

	setUsers2Index: function(iIndex) {
		this.oOptions.oUsers2.iIndex = iIndex;
		this.show();
	},
	
	setUsers2Id: function(iId) {
		this.oOptions.oUsers2.iId = iId;
		this.oOptions.oUsers2.sGender = 0;
		this.oOptions.oUsers2.iIndex = 0;
		this.show();
	},
	
	setUsers2Gender: function(sGender) {
		this.oOptions.oUsers2.sGender = sGender;
		this.oOptions.oUsers2.iId = 0;
		this.oOptions.oUsers2.iIndex = 0;
		this.show();
	},
	
	setRaiting: function(iRaiting,bValue) {
		this.oOptions.oRaiting[iRaiting] = bValue;
		this.oOptions.oUsers1.iIndex = 0;
		this.oOptions.oUsers2.iIndex = 0;
		this.show();
	},
	
	
	/*Interface Functions*/
	toTop: function() {
		this.setUsers1Index(this.oOptions.oUsers1.iIndex-this.oOptions.oUsers1.iPerPage);
	},
	
	toRight: function() {
		this.setUsers2Index(this.oOptions.oUsers2.iIndex+this.oOptions.oUsers2.iPerPage);
	},
	
	toBottom: function() {
		this.setUsers1Index(this.oOptions.oUsers1.iIndex+this.oOptions.oUsers1.iPerPage);
	},
	
	toLeft: function() {
		this.setUsers2Index(this.oOptions.oUsers2.iIndex-this.oOptions.oUsers2.iPerPage);
	},
	
	selectUsers1ByUserId: function(iId) {
		if(iId==0) {
			$('#selectUsers1ById').attr('disabled',false);
			this.selectUsers1ById($('#selectUsers1ById').attr('value'));
		} else {
			$('#selectUsers1ById').attr('disabled',true);
			$('#selectUsers1ByGender').attr('disabled',true);
			this.setUsers1Id(iId);
		}
	},
	
	selectUsers1ById: function(iId) {
		if(iId==0) {
			$('#selectUsers1ByGender').attr('disabled',false);
			this.selectUsers1ByGender($('#selectUsers1ByGender').attr('value'));
		} else {
			$('#selectUsers1ByGender').attr('disabled',true);
			this.setUsers1Id(iId);
		}
	},
	
	selectUsers1ByGender: function(sGender) {
		this.setUsers1Gender(sGender);
	},
	
	selectUsers2ByUserId: function(iId) {
		if(iId==0) {
			$('#selectUsers2ById').attr('disabled',false);
			this.selectUsers2ById($('#selectUsers2ById').attr('value'));
		} else {
			$('#selectUsers2ById').attr('disabled',true);
			$('#selectUsers2ByGender').attr('disabled',true);
			this.setUsers2Id(iId);
		}
	},
	
	selectUsers2ById: function(iId) {
		if(iId==0) {
			$('#selectUsers2ByGender').attr('disabled',false);
			this.selectUsers2ByGender($('#selectUsers2ByGender').attr('value'));
		} else {
			$('#selectUsers2ByGender').attr('disabled',true);
			this.setUsers2Id(iId);
		}
	},
	
	selectUsers2ByGender: function(sGender) {
		this.setUsers2Gender(sGender);
	},
	
	selectUsersByRaiting: function(iRaiting,bValue) {
		if(parseInt(iRaiting)==0) {
			if(bValue) {
				$('#reiting1').attr('checked',true);
				$('#reiting2').attr('checked',true);
				$('#reiting3').attr('checked',true);
				$('#reiting4').attr('checked',true);
				$('#reiting5').attr('checked',true);
				this.oOptions.oRaiting[1] = true;
				this.oOptions.oRaiting[2] = true;
				this.oOptions.oRaiting[3] = true;
				this.oOptions.oRaiting[4] = true;
				this.oOptions.oRaiting[5] = true;
			} else {
				$('#reiting1').attr('checked',false);
				$('#reiting2').attr('checked',false);
				$('#reiting3').attr('checked',false);
				$('#reiting4').attr('checked',false);
				$('#reiting5').attr('checked',false);
				this.oOptions.oRaiting[1] = false;
				this.oOptions.oRaiting[2] = false;
				this.oOptions.oRaiting[3] = false;
				this.oOptions.oRaiting[4] = false;
				this.oOptions.oRaiting[5] = false;
			}
		} else {
			if($('#reiting1').attr('checked')==true && $('#reiting2').attr('checked')==true && $('#reiting3').attr('checked')==true && $('#reiting4').attr('checked')==true && $('#reiting5').attr('checked')==true) {
				$('#reiting0').attr('checked',true);
				this.oOptions.oRaiting[0] = true;
			} else {
				$('#reiting0').attr('checked',false);
				this.oOptions.oRaiting[0] = false;
			}
		}
		this.setRaiting(iRaiting,bValue);
	},
	
	/*Use These Functions*/
	matchFriends: function(iUser1Id,iUser2Id) {
		oMatcher = new cMatcher();
		if(iUser1Id==iUser2Id) {
			oMatcher.load({oUser1:iUser1Id,oUser2:iUser2Id,oUsers1:{bUserId:false,sGender:'Male'},oUsers2:{bUserId:false,sGender:'Female'}});
		} else {
			oMatcher.load({oUser1:iUser1Id,oUser2:iUser2Id,oUsers1:{bUserId:false,sGender:0},oUsers2:{bUserId:false,sGender:0}});
		}
	},
	
	matchUserWithUserFriends: function(iUser1Id,iUser2Id) {
		oMatcher = new cMatcher();
		oMatcher.load({oUser1:iUser1Id,oUser2:iUser2Id,oUsers1:{bUserId:false,bId:false,bGender:false,iId:iUser1Id},oUsers2:{bUserId:false}});
	},
	
	matchDate: function(iUser1Id,iUser2Id,iUser3Id) {
		oMatcher = new cMatcher();
		oMatcher.load({oUser1:iUser1Id,oUser2:iUser2Id,oUser3:iUser3Id,sLinkMode:'Select',oUsers2:{bUserId:false,bId:false,bGender:false,iId:iUser2Id},oUsers3:{iId:iUser3Id}});
	}, 
	
	matchDate2: function(iUser1Id,iUser2Id) {
		oMatcher = new cMatcher();
		oMatcher.load({oUser1:iUser1Id,oUser2:iUser2Id,sLinkMode:'Select',oUsers2:{bUserId:false,bId:false,bGender:false,iId:iUser2Id},oUsers1:{bUserId:false}});
	}
	
}

var oMatcher = new cMatcher();

/*$(document).ready(
	function() {
    oMatcher = new cMatcher();
	}
);*/
